diff options
Diffstat (limited to 'src/mongo/db/repl/read_concern_args.h')
-rw-r--r-- | src/mongo/db/repl/read_concern_args.h | 23 |
1 files changed, 18 insertions, 5 deletions
diff --git a/src/mongo/db/repl/read_concern_args.h b/src/mongo/db/repl/read_concern_args.h index 775877f9b34..310cfc59432 100644 --- a/src/mongo/db/repl/read_concern_args.h +++ b/src/mongo/db/repl/read_concern_args.h @@ -48,11 +48,17 @@ namespace repl { class ReadConcernArgs { public: - static const std::string kReadConcernFieldName; - static const std::string kAfterOpTimeFieldName; - static const std::string kAfterClusterTimeFieldName; - static const std::string kAtClusterTimeFieldName; - static const std::string kLevelFieldName; + static constexpr StringData kReadConcernFieldName = "readConcern"_sd; + static constexpr StringData kAfterOpTimeFieldName = "afterOpTime"_sd; + static constexpr StringData kAfterClusterTimeFieldName = "afterClusterTime"_sd; + static constexpr StringData kAtClusterTimeFieldName = "atClusterTime"_sd; + static constexpr StringData kLevelFieldName = "level"_sd; + + static constexpr StringData kLocalReadConcernStr = "local"_sd; + static constexpr StringData kMajorityReadConcernStr = "majority"_sd; + static constexpr StringData kLinearizableReadConcernStr = "linearizable"_sd; + static constexpr StringData kAvailableReadConcernStr = "available"_sd; + static constexpr StringData kSnapshotReadConcernStr = "snapshot"_sd; /** * Represents the internal mechanism an operation uses to satisfy 'majority' read concern. @@ -104,6 +110,13 @@ public: Status initialize(const BSONElement& readConcernElem); /** + * Initializes the object by parsing the actual readConcern sub-object. + */ + Status parse(const BSONObj& readConcernObj); + + static ReadConcernArgs fromBSONThrows(const BSONObj& readConcernObj); + + /** * Sets the mechanism we should use to satisfy 'majority' reads. * * Invalid to call unless the read concern level is 'kMajorityReadConcern'. |