summaryrefslogtreecommitdiff
path: root/src/mongo/s/type_lockpings.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo/s/type_lockpings.h')
-rw-r--r--src/mongo/s/type_lockpings.h251
1 files changed, 125 insertions, 126 deletions
diff --git a/src/mongo/s/type_lockpings.h b/src/mongo/s/type_lockpings.h
index 8197da6b9ed..845b544d206 100644
--- a/src/mongo/s/type_lockpings.h
+++ b/src/mongo/s/type_lockpings.h
@@ -35,131 +35,130 @@
namespace mongo {
+/**
+ * This class represents the layout and contents of documents contained in the
+ * config.lockpings collection. All manipulation of documents coming from that
+ * collection should be done with this class.
+ *
+ * Usage Example:
+ *
+ * // Contact the config. 'conn' has been obtained before.
+ * DBClientBase* conn;
+ * BSONObj query = QUERY(LockpingsType::exampleField("exampleFieldName"));
+ * exampleDoc = conn->findOne(LockpingsType::ConfigNS, query);
+ *
+ * // Process the response.
+ * LockpingsType exampleType;
+ * std::string errMsg;
+ * if (!exampleType.parseBSON(exampleDoc, &errMsg) || !exampleType.isValid(&errMsg)) {
+ * // Can't use 'exampleType'. Take action.
+ * }
+ * // use 'exampleType'
+ *
+ */
+class LockpingsType {
+public:
+ //
+ // schema declarations
+ //
+
+ // Name of the lockpings collection in the config server.
+ static const std::string ConfigNS;
+
+ // Field names and types in the lockpings collection type.
+ static const BSONField<std::string> process;
+ static const BSONField<Date_t> ping;
+
+ //
+ // lockpings type methods
+ //
+
+ LockpingsType();
+ ~LockpingsType();
+
+ /**
+ * Returns true if all the mandatory fields are present and have valid
+ * representations. Otherwise returns false and fills in the optional 'errMsg' string.
+ */
+ bool isValid(std::string* errMsg) const;
+
+ /**
+ * Returns the BSON representation of the entry.
+ */
+ BSONObj toBSON() const;
+
+ /**
+ * Clears and populates the internal state using the 'source' BSON object if the
+ * latter contains valid values. Otherwise sets errMsg and returns false.
+ */
+ bool parseBSON(const BSONObj& source, std::string* errMsg);
+
+ /**
+ * Clears the internal state.
+ */
+ void clear();
+
+ /**
+ * Copies all the fields present in 'this' to 'other'.
+ */
+ void cloneTo(LockpingsType* other) const;
+
/**
- * This class represents the layout and contents of documents contained in the
- * config.lockpings collection. All manipulation of documents coming from that
- * collection should be done with this class.
- *
- * Usage Example:
- *
- * // Contact the config. 'conn' has been obtained before.
- * DBClientBase* conn;
- * BSONObj query = QUERY(LockpingsType::exampleField("exampleFieldName"));
- * exampleDoc = conn->findOne(LockpingsType::ConfigNS, query);
- *
- * // Process the response.
- * LockpingsType exampleType;
- * std::string errMsg;
- * if (!exampleType.parseBSON(exampleDoc, &errMsg) || !exampleType.isValid(&errMsg)) {
- * // Can't use 'exampleType'. Take action.
- * }
- * // use 'exampleType'
- *
+ * Returns a std::string representation of the current internal state.
*/
- class LockpingsType {
- public:
-
- //
- // schema declarations
- //
-
- // Name of the lockpings collection in the config server.
- static const std::string ConfigNS;
-
- // Field names and types in the lockpings collection type.
- static const BSONField<std::string> process;
- static const BSONField<Date_t> ping;
-
- //
- // lockpings type methods
- //
-
- LockpingsType();
- ~LockpingsType();
-
- /**
- * Returns true if all the mandatory fields are present and have valid
- * representations. Otherwise returns false and fills in the optional 'errMsg' string.
- */
- bool isValid(std::string* errMsg) const;
-
- /**
- * Returns the BSON representation of the entry.
- */
- BSONObj toBSON() const;
-
- /**
- * Clears and populates the internal state using the 'source' BSON object if the
- * latter contains valid values. Otherwise sets errMsg and returns false.
- */
- bool parseBSON(const BSONObj& source, std::string* errMsg);
-
- /**
- * Clears the internal state.
- */
- void clear();
-
- /**
- * Copies all the fields present in 'this' to 'other'.
- */
- void cloneTo(LockpingsType* other) const;
-
- /**
- * Returns a std::string representation of the current internal state.
- */
- std::string toString() const;
-
- //
- // individual field accessors
- //
-
- // Mandatory Fields
- void setProcess(StringData process) {
- _process = process.toString();
- _isProcessSet = true;
- }
-
- void unsetProcess() {
- _isProcessSet = false;
- }
-
- bool isProcessSet() const {
- return _isProcessSet;
- }
-
- // Calling get*() methods when the member is not set results in undefined behavior
- const std::string& getProcess() const {
- dassert(_isProcessSet);
- return _process;
- }
-
- void setPing(const Date_t ping) {
- _ping = ping;
- _isPingSet = true;
- }
-
- void unsetPing() {
- _isPingSet = false;
- }
-
- bool isPingSet() const {
- return _isPingSet;
- }
-
- // Calling get*() methods when the member is not set results in undefined behavior
- const Date_t getPing() const {
- dassert(_isPingSet);
- return _ping;
- }
-
- // Optional Fields
-
- private:
- // Convention: (M)andatory, (O)ptional, (S)pecial rule.
- std::string _process; // (M) std::string describing the process holding the lock
- bool _isProcessSet;
- Date_t _ping; // (M) last time the holding process updated this document
- bool _isPingSet;
- };
-
-} // namespace mongo
+ std::string toString() const;
+
+ //
+ // individual field accessors
+ //
+
+ // Mandatory Fields
+ void setProcess(StringData process) {
+ _process = process.toString();
+ _isProcessSet = true;
+ }
+
+ void unsetProcess() {
+ _isProcessSet = false;
+ }
+
+ bool isProcessSet() const {
+ return _isProcessSet;
+ }
+
+ // Calling get*() methods when the member is not set results in undefined behavior
+ const std::string& getProcess() const {
+ dassert(_isProcessSet);
+ return _process;
+ }
+
+ void setPing(const Date_t ping) {
+ _ping = ping;
+ _isPingSet = true;
+ }
+
+ void unsetPing() {
+ _isPingSet = false;
+ }
+
+ bool isPingSet() const {
+ return _isPingSet;
+ }
+
+ // Calling get*() methods when the member is not set results in undefined behavior
+ const Date_t getPing() const {
+ dassert(_isPingSet);
+ return _ping;
+ }
+
+ // Optional Fields
+
+private:
+ // Convention: (M)andatory, (O)ptional, (S)pecial rule.
+ std::string _process; // (M) std::string describing the process holding the lock
+ bool _isProcessSet;
+ Date_t _ping; // (M) last time the holding process updated this document
+ bool _isPingSet;
+};
+
+} // namespace mongo