summaryrefslogtreecommitdiff
path: root/src/mongo/s/write_ops/batched_command_request.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo/s/write_ops/batched_command_request.h')
-rw-r--r--src/mongo/s/write_ops/batched_command_request.h34
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;
};
/**