summaryrefslogtreecommitdiff
path: root/src/mongo/db/repl/is_master_response.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo/db/repl/is_master_response.cpp')
-rw-r--r--src/mongo/db/repl/is_master_response.cpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/mongo/db/repl/is_master_response.cpp b/src/mongo/db/repl/is_master_response.cpp
index 06e0d1c1896..6c1efaa73a2 100644
--- a/src/mongo/db/repl/is_master_response.cpp
+++ b/src/mongo/db/repl/is_master_response.cpp
@@ -47,6 +47,7 @@ const std::string kIsMasterFieldName = "ismaster";
const std::string kSecondaryFieldName = "secondary";
const std::string kSetNameFieldName = "setName";
const std::string kSetVersionFieldName = "setVersion";
+const std::string kTopologyVersionFieldName = "topologyVersion";
const std::string kHostsFieldName = "hosts";
const std::string kPassivesFieldName = "passives";
const std::string kArbitersFieldName = "arbiters";
@@ -102,6 +103,11 @@ IsMasterResponse::IsMasterResponse()
_shutdownInProgress(false) {}
void IsMasterResponse::addToBSON(BSONObjBuilder* builder) const {
+ if (_topologyVersion) {
+ BSONObjBuilder topologyVersionBuilder(builder->subobjStart(kTopologyVersionFieldName));
+ _topologyVersion->serialize(&topologyVersionBuilder);
+ }
+
if (_hostsSet) {
std::vector<std::string> hosts;
for (size_t i = 0; i < _hosts.size(); ++i) {
@@ -538,6 +544,10 @@ void IsMasterResponse::setShouldBuildIndexes(bool buildIndexes) {
_buildIndexes = buildIndexes;
}
+void IsMasterResponse::setTopologyVersion(TopologyVersion topologyVersion) {
+ _topologyVersion = topologyVersion;
+}
+
void IsMasterResponse::setSlaveDelay(Seconds slaveDelay) {
_slaveDelaySet = true;
_slaveDelay = slaveDelay;