summaryrefslogtreecommitdiff
path: root/src/mongo/s/write_ops/batched_update_request.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo/s/write_ops/batched_update_request.h')
-rw-r--r--src/mongo/s/write_ops/batched_update_request.h226
1 files changed, 115 insertions, 111 deletions
diff --git a/src/mongo/s/write_ops/batched_update_request.h b/src/mongo/s/write_ops/batched_update_request.h
index db99188b7b3..6042f4c6cf2 100644
--- a/src/mongo/s/write_ops/batched_update_request.h
+++ b/src/mongo/s/write_ops/batched_update_request.h
@@ -40,116 +40,120 @@
namespace mongo {
+/**
+ * This class represents the layout and content of a batched update runCommand,
+ * the request side.
+ */
+class BatchedUpdateRequest : public BSONSerializable {
+ MONGO_DISALLOW_COPYING(BatchedUpdateRequest);
+
+public:
+ //
+ // schema declarations
+ //
+
+ // Name used for the batched update invocation.
+ static const std::string BATCHED_UPDATE_REQUEST;
+
+ // Field names and types in the batched update command type.
+ static const BSONField<std::string> collName;
+ static const BSONField<std::vector<BatchedUpdateDocument*>> updates;
+ static const BSONField<BSONObj> writeConcern;
+ static const BSONField<bool> ordered;
+ static const BSONField<BSONObj> metadata;
+
+ //
+ // construction / destruction
+ //
+
+ BatchedUpdateRequest();
+ virtual ~BatchedUpdateRequest();
+
+ /** Copies all the fields present in 'this' to 'other'. */
+ void cloneTo(BatchedUpdateRequest* other) const;
+
+ //
+ // bson serializable interface implementation
+ //
+
+ virtual bool isValid(std::string* errMsg) const;
+ virtual BSONObj toBSON() const;
+ virtual bool parseBSON(const BSONObj& source, std::string* errMsg);
+ virtual void clear();
+ virtual std::string toString() const;
+
+ //
+ // individual field accessors
+ //
+
+ void setCollName(StringData collName);
+ void setCollNameNS(const NamespaceString& collName);
+ const std::string& getCollName() const;
+ const NamespaceString& getCollNameNS() const;
+
+ const NamespaceString& getTargetingNSS() const;
+
+ void setUpdates(const std::vector<BatchedUpdateDocument*>& updates);
+
/**
- * This class represents the layout and content of a batched update runCommand,
- * the request side.
+ * updates ownership is transferred to here.
*/
- class BatchedUpdateRequest : public BSONSerializable {
- MONGO_DISALLOW_COPYING(BatchedUpdateRequest);
- public:
-
- //
- // schema declarations
- //
-
- // Name used for the batched update invocation.
- static const std::string BATCHED_UPDATE_REQUEST;
-
- // Field names and types in the batched update command type.
- static const BSONField<std::string> collName;
- static const BSONField<std::vector<BatchedUpdateDocument*> > updates;
- static const BSONField<BSONObj> writeConcern;
- static const BSONField<bool> ordered;
- static const BSONField<BSONObj> metadata;
-
- //
- // construction / destruction
- //
-
- BatchedUpdateRequest();
- virtual ~BatchedUpdateRequest();
-
- /** Copies all the fields present in 'this' to 'other'. */
- void cloneTo(BatchedUpdateRequest* other) const;
-
- //
- // bson serializable interface implementation
- //
-
- virtual bool isValid(std::string* errMsg) const;
- virtual BSONObj toBSON() const;
- virtual bool parseBSON(const BSONObj& source, std::string* errMsg);
- virtual void clear();
- virtual std::string toString() const;
-
- //
- // individual field accessors
- //
-
- void setCollName(StringData collName);
- void setCollNameNS(const NamespaceString& collName);
- const std::string& getCollName() const;
- const NamespaceString& getCollNameNS() const;
-
- const NamespaceString& getTargetingNSS() const;
-
- void setUpdates(const std::vector<BatchedUpdateDocument*>& updates);
-
- /**
- * updates ownership is transferred to here.
- */
- void addToUpdates(BatchedUpdateDocument* updates);
- void unsetUpdates();
- bool isUpdatesSet() const;
- std::size_t sizeUpdates() const;
- const std::vector<BatchedUpdateDocument*>& getUpdates() const;
- const BatchedUpdateDocument* getUpdatesAt(std::size_t pos) const;
-
- void setWriteConcern(const BSONObj& writeConcern);
- void unsetWriteConcern();
- bool isWriteConcernSet() const;
- const BSONObj& getWriteConcern() const;
-
- void setOrdered(bool ordered);
- void unsetOrdered();
- bool isOrderedSet() const;
- bool getOrdered() const;
-
- void setShouldBypassValidation(bool newVal) { _shouldBypassValidation = newVal; }
- bool shouldBypassValidation() const { return _shouldBypassValidation; }
-
- /*
- * metadata ownership will be transferred to this.
- */
- void setMetadata(BatchedRequestMetadata* metadata);
- void unsetMetadata();
- bool isMetadataSet() const;
- BatchedRequestMetadata* getMetadata() const;
-
- private:
- // Convention: (M)andatory, (O)ptional
-
- // (M) collection we're updating from
- NamespaceString _collName;
- bool _isCollNameSet;
-
- // (M) array of individual updates
- std::vector<BatchedUpdateDocument*> _updates;
- bool _isUpdatesSet;
-
- // (O) to be issued after the batch applied
- BSONObj _writeConcern;
- bool _isWriteConcernSet;
-
- // (O) whether batch is issued in parallel or not
- bool _ordered;
- bool _isOrderedSet;
-
- // (O) should document validation be bypassed (default false)
- bool _shouldBypassValidation;
-
- // (O) metadata associated with this request for internal use.
- std::unique_ptr<BatchedRequestMetadata> _metadata;
- };
-
-} // namespace mongo
+ void addToUpdates(BatchedUpdateDocument* updates);
+ void unsetUpdates();
+ bool isUpdatesSet() const;
+ std::size_t sizeUpdates() const;
+ const std::vector<BatchedUpdateDocument*>& getUpdates() const;
+ const BatchedUpdateDocument* getUpdatesAt(std::size_t pos) const;
+
+ void setWriteConcern(const BSONObj& writeConcern);
+ void unsetWriteConcern();
+ bool isWriteConcernSet() const;
+ const BSONObj& getWriteConcern() const;
+
+ void setOrdered(bool ordered);
+ void unsetOrdered();
+ bool isOrderedSet() const;
+ bool getOrdered() const;
+
+ void setShouldBypassValidation(bool newVal) {
+ _shouldBypassValidation = newVal;
+ }
+ bool shouldBypassValidation() const {
+ return _shouldBypassValidation;
+ }
+
+ /*
+ * metadata ownership will be transferred to this.
+ */
+ void setMetadata(BatchedRequestMetadata* metadata);
+ void unsetMetadata();
+ bool isMetadataSet() const;
+ BatchedRequestMetadata* getMetadata() const;
+
+private:
+ // Convention: (M)andatory, (O)ptional
+
+ // (M) collection we're updating from
+ NamespaceString _collName;
+ bool _isCollNameSet;
+
+ // (M) array of individual updates
+ std::vector<BatchedUpdateDocument*> _updates;
+ bool _isUpdatesSet;
+
+ // (O) to be issued after the batch applied
+ BSONObj _writeConcern;
+ bool _isWriteConcernSet;
+
+ // (O) whether batch is issued in parallel or not
+ bool _ordered;
+ bool _isOrderedSet;
+
+ // (O) should document validation be bypassed (default false)
+ bool _shouldBypassValidation;
+
+ // (O) metadata associated with this request for internal use.
+ std::unique_ptr<BatchedRequestMetadata> _metadata;
+};
+
+} // namespace mongo