summaryrefslogtreecommitdiff
path: root/src/mongo/db/repl/repl_set_heartbeat_args_v1.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo/db/repl/repl_set_heartbeat_args_v1.cpp')
-rw-r--r--src/mongo/db/repl/repl_set_heartbeat_args_v1.cpp178
1 files changed, 86 insertions, 92 deletions
diff --git a/src/mongo/db/repl/repl_set_heartbeat_args_v1.cpp b/src/mongo/db/repl/repl_set_heartbeat_args_v1.cpp
index b65b9e99521..c79249815f9 100644
--- a/src/mongo/db/repl/repl_set_heartbeat_args_v1.cpp
+++ b/src/mongo/db/repl/repl_set_heartbeat_args_v1.cpp
@@ -40,113 +40,107 @@ namespace repl {
namespace {
- const std::string kCheckEmptyFieldName = "checkEmpty";
- const std::string kConfigVersionFieldName = "configVersion";
- const std::string kSenderHostFieldName = "from";
- const std::string kSenderIdFieldName = "fromId";
- const std::string kSetNameFieldName = "replSetHeartbeat";
- const std::string kTermFieldName = "term";
-
- const std::string kLegalHeartbeatFieldNames[] = {
- kCheckEmptyFieldName,
- kConfigVersionFieldName,
- kSenderHostFieldName,
- kSenderIdFieldName,
- kSetNameFieldName,
- kTermFieldName
- };
-
-} // namespace
-
- Status ReplSetHeartbeatArgsV1::initialize(const BSONObj& argsObj) {
- Status status = bsonCheckOnlyHasFields("ReplSetHeartbeatArgs",
- argsObj,
- kLegalHeartbeatFieldNames);
+const std::string kCheckEmptyFieldName = "checkEmpty";
+const std::string kConfigVersionFieldName = "configVersion";
+const std::string kSenderHostFieldName = "from";
+const std::string kSenderIdFieldName = "fromId";
+const std::string kSetNameFieldName = "replSetHeartbeat";
+const std::string kTermFieldName = "term";
+
+const std::string kLegalHeartbeatFieldNames[] = {kCheckEmptyFieldName,
+ kConfigVersionFieldName,
+ kSenderHostFieldName,
+ kSenderIdFieldName,
+ kSetNameFieldName,
+ kTermFieldName};
+
+} // namespace
+
+Status ReplSetHeartbeatArgsV1::initialize(const BSONObj& argsObj) {
+ Status status =
+ bsonCheckOnlyHasFields("ReplSetHeartbeatArgs", argsObj, kLegalHeartbeatFieldNames);
+ if (!status.isOK())
+ return status;
+
+ status = bsonExtractBooleanFieldWithDefault(argsObj, kCheckEmptyFieldName, false, &_checkEmpty);
+ if (!status.isOK())
+ return status;
+
+ status = bsonExtractIntegerField(argsObj, kConfigVersionFieldName, &_configVersion);
+ if (!status.isOK())
+ return status;
+
+ status = bsonExtractIntegerFieldWithDefault(argsObj, kSenderIdFieldName, -1, &_senderId);
+ if (!status.isOK())
+ return status;
+
+ std::string hostAndPortString;
+ status = bsonExtractStringField(argsObj, kSenderHostFieldName, &hostAndPortString);
+ if (!status.isOK())
+ return status;
+ if (!hostAndPortString.empty()) {
+ status = _senderHost.initialize(hostAndPortString);
if (!status.isOK())
return status;
+ _hasSender = true;
+ }
- status = bsonExtractBooleanFieldWithDefault(argsObj,
- kCheckEmptyFieldName,
- false,
- &_checkEmpty);
- if (!status.isOK())
- return status;
+ status = bsonExtractIntegerField(argsObj, kTermFieldName, &_term);
+ if (!status.isOK())
+ return status;
- status = bsonExtractIntegerField(argsObj, kConfigVersionFieldName, &_configVersion);
- if (!status.isOK())
- return status;
+ status = bsonExtractStringField(argsObj, kSetNameFieldName, &_setName);
+ if (!status.isOK())
+ return status;
- status = bsonExtractIntegerFieldWithDefault(argsObj, kSenderIdFieldName, -1, &_senderId);
- if (!status.isOK())
- return status;
+ return Status::OK();
+}
- std::string hostAndPortString;
- status = bsonExtractStringField(argsObj, kSenderHostFieldName, &hostAndPortString);
- if (!status.isOK())
- return status;
- if (!hostAndPortString.empty()) {
- status = _senderHost.initialize(hostAndPortString);
- if (!status.isOK())
- return status;
- _hasSender = true;
- }
-
- status = bsonExtractIntegerField(argsObj, kTermFieldName, &_term);
- if (!status.isOK())
- return status;
+bool ReplSetHeartbeatArgsV1::isInitialized() const {
+ return _configVersion != -1 && _term != -1 && !_setName.empty();
+}
- status = bsonExtractStringField(argsObj, kSetNameFieldName, &_setName);
- if (!status.isOK())
- return status;
+void ReplSetHeartbeatArgsV1::setConfigVersion(long long newVal) {
+ _configVersion = newVal;
+}
- return Status::OK();
- }
-
- bool ReplSetHeartbeatArgsV1::isInitialized() const {
- return _configVersion != -1 && _term != -1 && !_setName.empty();
- }
-
- void ReplSetHeartbeatArgsV1::setConfigVersion(long long newVal) {
- _configVersion = newVal;
- }
-
- void ReplSetHeartbeatArgsV1::setSenderHost(const HostAndPort& newVal) {
- _senderHost = newVal;
- }
+void ReplSetHeartbeatArgsV1::setSenderHost(const HostAndPort& newVal) {
+ _senderHost = newVal;
+}
- void ReplSetHeartbeatArgsV1::setSenderId(long long newVal) {
- _senderId = newVal;
- }
+void ReplSetHeartbeatArgsV1::setSenderId(long long newVal) {
+ _senderId = newVal;
+}
- void ReplSetHeartbeatArgsV1::setSetName(const std::string& newVal) {
- _setName = newVal;
- }
+void ReplSetHeartbeatArgsV1::setSetName(const std::string& newVal) {
+ _setName = newVal;
+}
- void ReplSetHeartbeatArgsV1::setTerm(long long newVal) {
- _term = newVal;
- }
+void ReplSetHeartbeatArgsV1::setTerm(long long newVal) {
+ _term = newVal;
+}
- void ReplSetHeartbeatArgsV1::setCheckEmpty() {
- _checkEmpty = true;
- }
+void ReplSetHeartbeatArgsV1::setCheckEmpty() {
+ _checkEmpty = true;
+}
- BSONObj ReplSetHeartbeatArgsV1::toBSON() const {
- invariant(isInitialized());
- BSONObjBuilder builder;
- addToBSON(&builder);
- return builder.obj();
- }
+BSONObj ReplSetHeartbeatArgsV1::toBSON() const {
+ invariant(isInitialized());
+ BSONObjBuilder builder;
+ addToBSON(&builder);
+ return builder.obj();
+}
- void ReplSetHeartbeatArgsV1::addToBSON(BSONObjBuilder* builder) const {
- builder->append(kSetNameFieldName, _setName);
- if (_checkEmpty) {
- builder->append(kCheckEmptyFieldName, _checkEmpty);
- }
- builder->appendIntOrLL(kConfigVersionFieldName, _configVersion);
- builder->append(kSenderHostFieldName, _hasSender ? _senderHost.toString() : "");
- builder->appendIntOrLL(kSenderIdFieldName, _senderId);
- builder->appendIntOrLL(kTermFieldName, _term);
+void ReplSetHeartbeatArgsV1::addToBSON(BSONObjBuilder* builder) const {
+ builder->append(kSetNameFieldName, _setName);
+ if (_checkEmpty) {
+ builder->append(kCheckEmptyFieldName, _checkEmpty);
}
+ builder->appendIntOrLL(kConfigVersionFieldName, _configVersion);
+ builder->append(kSenderHostFieldName, _hasSender ? _senderHost.toString() : "");
+ builder->appendIntOrLL(kSenderIdFieldName, _senderId);
+ builder->appendIntOrLL(kTermFieldName, _term);
+}
} // namespace repl
} // namespace mongo