示例#1
0
BSONObj MemberConfig::toBSON(const ReplicaSetTagConfig& tagConfig) const {
    BSONObjBuilder configBuilder;
    configBuilder.append("_id", _id);
    configBuilder.append("host", _host.toString());
    configBuilder.append("arbiterOnly", _arbiterOnly);
    configBuilder.append("buildIndexes", _buildIndexes);
    configBuilder.append("hidden", _hidden);
    configBuilder.append("priority", _priority);

    BSONObjBuilder tags(configBuilder.subobjStart("tags"));
    for (std::vector<ReplicaSetTag>::const_iterator tag = _tags.begin(); tag != _tags.end();
         tag++) {
        std::string tagKey = tagConfig.getTagKey(*tag);
        if (tagKey[0] == '$') {
            // Filter out internal tags
            continue;
        }
        tags.append(tagKey, tagConfig.getTagValue(*tag));
    }
    tags.done();

    configBuilder.append("slaveDelay", durationCount<Seconds>(_slaveDelay));
    configBuilder.append("votes", getNumVotes());
    return configBuilder.obj();
}
示例#2
0
    BSONObj MemberConfig::toBSON(const ReplicaSetTagConfig& tagConfig) const {
        BSONObjBuilder configBuilder;
        configBuilder.append("_id", _id);
        configBuilder.append("host", _host.toString());
        configBuilder.append("arbiterOnly", _arbiterOnly);
        configBuilder.append("buildIndexes", _buildIndexes);
        configBuilder.append("hidden", _hidden);
        configBuilder.append("priority", _priority);

        BSONObjBuilder tags(configBuilder.subobjStart("tags"));
        for (std::vector<ReplicaSetTag>::const_iterator tag = _tags.begin();
                tag != _tags.end();
                tag++) {
            tags.append(tagConfig.getTagKey(*tag), tagConfig.getTagValue(*tag));
        }
        tags.done();

        configBuilder.append("slaveDelay", _slaveDelay.total_seconds());
        configBuilder.append("votes", getNumVotes());
        return configBuilder.obj();
    }