diff options
Diffstat (limited to 'src/mongo/s/write_ops/batched_command_request.h')
| -rw-r--r-- | src/mongo/s/write_ops/batched_command_request.h | 34 |
1 files changed, 16 insertions, 18 deletions
diff --git a/src/mongo/s/write_ops/batched_command_request.h b/src/mongo/s/write_ops/batched_command_request.h index 0bcb51a3556..eea7f7bbe11 100644 --- a/src/mongo/s/write_ops/batched_command_request.h +++ b/src/mongo/s/write_ops/batched_command_request.h @@ -52,25 +52,15 @@ public: : _batchType(BatchType_Insert), _insertReq(std::make_unique<write_ops::InsertCommandRequest>(std::move(insertOp))) {} - BatchedCommandRequest(std::unique_ptr<write_ops::InsertCommandRequest> insertOp) - : _batchType(BatchType_Insert), _insertReq(std::move(insertOp)) {} - BatchedCommandRequest(write_ops::UpdateCommandRequest updateOp) : _batchType(BatchType_Update), _updateReq(std::make_unique<write_ops::UpdateCommandRequest>(std::move(updateOp))) {} - BatchedCommandRequest(std::unique_ptr<write_ops::UpdateCommandRequest> updateOp) - : _batchType(BatchType_Update), _updateReq(std::move(updateOp)) {} - BatchedCommandRequest(write_ops::DeleteCommandRequest deleteOp) : _batchType(BatchType_Delete), _deleteReq(std::make_unique<write_ops::DeleteCommandRequest>(std::move(deleteOp))) {} - BatchedCommandRequest(std::unique_ptr<write_ops::DeleteCommandRequest> deleteOp) - : _batchType(BatchType_Delete), _deleteReq(std::move(deleteOp)) {} - BatchedCommandRequest(BatchedCommandRequest&&) = default; - BatchedCommandRequest& operator=(BatchedCommandRequest&&) = default; static BatchedCommandRequest parseInsert(const OpMsgRequest& request); static BatchedCommandRequest parseUpdate(const OpMsgRequest& request); @@ -101,19 +91,26 @@ public: return *_deleteReq; } - std::unique_ptr<write_ops::InsertCommandRequest> extractInsertRequest() { - return std::move(_insertReq); + std::size_t sizeWriteOps() const; + + void setWriteConcern(const BSONObj& writeConcern) { + _writeConcern = writeConcern.getOwned(); } - std::unique_ptr<write_ops::UpdateCommandRequest> extractUpdateRequest() { - return std::move(_updateReq); + void unsetWriteConcern() { + _writeConcern = boost::none; } - std::unique_ptr<write_ops::DeleteCommandRequest> extractDeleteRequest() { - return std::move(_deleteReq); + bool hasWriteConcern() const { + return _writeConcern.is_initialized(); } - std::size_t sizeWriteOps() const; + const BSONObj& getWriteConcern() const { + invariant(_writeConcern); + return *_writeConcern; + } + + bool isVerboseWC() const; void setShardVersion(ChunkVersion shardVersion) { _shardVersion = std::move(shardVersion); @@ -149,7 +146,6 @@ public: const boost::optional<LegacyRuntimeConstants>& getLegacyRuntimeConstants() const; const boost::optional<BSONObj>& getLet() const; - const OptionalBool& getBypassEmptyTsReplacement() const; const write_ops::WriteCommandRequestBase& getWriteCommandRequestBase() const; void setWriteCommandRequestBase(write_ops::WriteCommandRequestBase writeCommandBase); @@ -232,6 +228,8 @@ private: boost::optional<ChunkVersion> _shardVersion; boost::optional<DatabaseVersion> _dbVersion; + + boost::optional<BSONObj> _writeConcern; }; /** |
