void ReadConcernArgs::appendInfo(BSONObjBuilder* builder) { BSONObjBuilder rcBuilder(builder->subobjStart(kReadConcernFieldName)); if (_level) { string levelName; switch (_level.get()) { case ReadConcernLevel::kLocalReadConcern: levelName = kLocalReadConcernStr; break; case ReadConcernLevel::kMajorityReadConcern: levelName = kMajorityReadConcernStr; break; case ReadConcernLevel::kLinearizableReadConcern: levelName = kLinearizableReadConcernStr; break; default: fassert(28754, false); } rcBuilder.append(kLevelFieldName, levelName); } if (_opTime) { _opTime->append(&rcBuilder, kAfterOpTimeFieldName); } rcBuilder.done(); }
void ReadConcernArgs::appendInfo(BSONObjBuilder* builder) const { BSONObjBuilder rcBuilder(builder->subobjStart(kReadConcernFieldName)); if (_level) { StringData levelName; switch (_level.get()) { case ReadConcernLevel::kLocalReadConcern: levelName = kLocalReadConcernStr; break; case ReadConcernLevel::kMajorityReadConcern: levelName = kMajorityReadConcernStr; break; case ReadConcernLevel::kLinearizableReadConcern: levelName = kLinearizableReadConcernStr; break; case ReadConcernLevel::kAvailableReadConcern: levelName = kAvailableReadConcernStr; break; case ReadConcernLevel::kSnapshotReadConcern: levelName = kSnapshotReadConcernStr; break; default: MONGO_UNREACHABLE; } rcBuilder.append(kLevelFieldName, levelName); } if (_opTime) { _opTime->append(&rcBuilder, kAfterOpTimeFieldName); } if (_afterClusterTime) { rcBuilder.append(kAfterClusterTimeFieldName, _afterClusterTime->asTimestamp()); } if (_atClusterTime) { rcBuilder.append(kAtClusterTimeFieldName, _atClusterTime->asTimestamp()); } rcBuilder.done(); }