summaryrefslogtreecommitdiff
path: root/src/mongo/db/repl/read_concern_args.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo/db/repl/read_concern_args.h')
-rw-r--r--src/mongo/db/repl/read_concern_args.h23
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'.