diff options
Diffstat (limited to 'src/mongo/s/catalog/type_actionlog.cpp')
-rw-r--r-- | src/mongo/s/catalog/type_actionlog.cpp | 185 |
1 files changed, 95 insertions, 90 deletions
diff --git a/src/mongo/s/catalog/type_actionlog.cpp b/src/mongo/s/catalog/type_actionlog.cpp index 49dd09b6958..1cefd2774dc 100644 --- a/src/mongo/s/catalog/type_actionlog.cpp +++ b/src/mongo/s/catalog/type_actionlog.cpp @@ -32,124 +32,129 @@ namespace mongo { - using std::string; +using std::string; - using mongo::str::stream; +using mongo::str::stream; - const std::string ActionLogType::ConfigNS = "config.actionlog"; +const std::string ActionLogType::ConfigNS = "config.actionlog"; - const BSONField<std::string> ActionLogType::server("server"); - const BSONField<std::string> ActionLogType::what("what"); - const BSONField<Date_t> ActionLogType::time("time"); - const BSONField<BSONObj> ActionLogType::details("details"); +const BSONField<std::string> ActionLogType::server("server"); +const BSONField<std::string> ActionLogType::what("what"); +const BSONField<Date_t> ActionLogType::time("time"); +const BSONField<BSONObj> ActionLogType::details("details"); - ActionLogType::ActionLogType() { - clear(); - } +ActionLogType::ActionLogType() { + clear(); +} - ActionLogType::~ActionLogType() { - } +ActionLogType::~ActionLogType() {} - bool ActionLogType::isValid(std::string* errMsg) const { - std::string dummy; - if (errMsg == NULL) { - errMsg = &dummy; - } - - // All the mandatory fields must be present. - if (!_isServerSet) { - *errMsg = stream() << "missing " << server.name() << " field"; - return false; - } - if (!_isTimeSet) { - *errMsg = stream() << "missing " << time.name() << " field"; - return false; - } - if (!_isWhatSet) { - *errMsg = stream() << "missing " << what.name() << " field"; - return false; - } - if (!_isDetailsSet) { - *errMsg = stream() << "missing " << details.name() << " field"; - return false; - } - - return true; +bool ActionLogType::isValid(std::string* errMsg) const { + std::string dummy; + if (errMsg == NULL) { + errMsg = &dummy; } - BSONObj ActionLogType::toBSON() const { - BSONObjBuilder builder; - - if (_isServerSet) builder.append(server(), _server); - if (_isTimeSet) builder.append(time(), _time); - if (_isWhatSet) builder.append(what(), _what); - if (_isDetailsSet) builder.append(details(), _details); - - return builder.obj(); + // All the mandatory fields must be present. + if (!_isServerSet) { + *errMsg = stream() << "missing " << server.name() << " field"; + return false; + } + if (!_isTimeSet) { + *errMsg = stream() << "missing " << time.name() << " field"; + return false; + } + if (!_isWhatSet) { + *errMsg = stream() << "missing " << what.name() << " field"; + return false; + } + if (!_isDetailsSet) { + *errMsg = stream() << "missing " << details.name() << " field"; + return false; } - bool ActionLogType::parseBSON(const BSONObj& source, string* errMsg) { - clear(); + return true; +} - std::string dummy; - if (!errMsg) errMsg = &dummy; +BSONObj ActionLogType::toBSON() const { + BSONObjBuilder builder; - FieldParser::FieldState fieldState; + if (_isServerSet) + builder.append(server(), _server); + if (_isTimeSet) + builder.append(time(), _time); + if (_isWhatSet) + builder.append(what(), _what); + if (_isDetailsSet) + builder.append(details(), _details); - fieldState = FieldParser::extract(source, server, &_server, errMsg); - if (fieldState == FieldParser::FIELD_INVALID) return false; - _isServerSet = fieldState == FieldParser::FIELD_SET; + return builder.obj(); +} - fieldState = FieldParser::extract(source, time, &_time, errMsg); - if (fieldState == FieldParser::FIELD_INVALID) return false; - _isTimeSet = fieldState == FieldParser::FIELD_SET; +bool ActionLogType::parseBSON(const BSONObj& source, string* errMsg) { + clear(); - fieldState = FieldParser::extract(source, what, &_what, errMsg); - if (fieldState == FieldParser::FIELD_INVALID) return false; - _isWhatSet = fieldState == FieldParser::FIELD_SET; + std::string dummy; + if (!errMsg) + errMsg = &dummy; - fieldState = FieldParser::extract(source, details, &_details, errMsg); - if (fieldState == FieldParser::FIELD_INVALID) return false; - _isDetailsSet = fieldState == FieldParser::FIELD_SET; + FieldParser::FieldState fieldState; - return true; - } + fieldState = FieldParser::extract(source, server, &_server, errMsg); + if (fieldState == FieldParser::FIELD_INVALID) + return false; + _isServerSet = fieldState == FieldParser::FIELD_SET; - void ActionLogType::clear() { + fieldState = FieldParser::extract(source, time, &_time, errMsg); + if (fieldState == FieldParser::FIELD_INVALID) + return false; + _isTimeSet = fieldState == FieldParser::FIELD_SET; - _server.clear(); - _isServerSet = false; + fieldState = FieldParser::extract(source, what, &_what, errMsg); + if (fieldState == FieldParser::FIELD_INVALID) + return false; + _isWhatSet = fieldState == FieldParser::FIELD_SET; - _what.clear(); - _isWhatSet = false; + fieldState = FieldParser::extract(source, details, &_details, errMsg); + if (fieldState == FieldParser::FIELD_INVALID) + return false; + _isDetailsSet = fieldState == FieldParser::FIELD_SET; - _time = Date_t(); - _isTimeSet = false; + return true; +} - _details = BSONObj(); - _isDetailsSet = false; +void ActionLogType::clear() { + _server.clear(); + _isServerSet = false; - } + _what.clear(); + _isWhatSet = false; - void ActionLogType::cloneTo(ActionLogType* other) const { - other->clear(); + _time = Date_t(); + _isTimeSet = false; - other->_server = _server; - other->_isServerSet = _isServerSet; + _details = BSONObj(); + _isDetailsSet = false; +} - other->_what = _what; - other->_isWhatSet = _isWhatSet; +void ActionLogType::cloneTo(ActionLogType* other) const { + other->clear(); - other->_time = _time; - other->_isTimeSet = _isTimeSet; + other->_server = _server; + other->_isServerSet = _isServerSet; - other->_details = _details; - other->_isDetailsSet = _isDetailsSet; + other->_what = _what; + other->_isWhatSet = _isWhatSet; - } + other->_time = _time; + other->_isTimeSet = _isTimeSet; - std::string ActionLogType::toString() const { - return toBSON().toString(); - } + other->_details = _details; + other->_isDetailsSet = _isDetailsSet; +} + +std::string ActionLogType::toString() const { + return toBSON().toString(); +} -} // namespace mongo +} // namespace mongo |