diff options
Diffstat (limited to 'src/mongo/logger/log_domain-impl.h')
-rw-r--r-- | src/mongo/logger/log_domain-impl.h | 114 |
1 files changed, 54 insertions, 60 deletions
diff --git a/src/mongo/logger/log_domain-impl.h b/src/mongo/logger/log_domain-impl.h index 67ff6bb2f1a..3f5e5038d34 100644 --- a/src/mongo/logger/log_domain-impl.h +++ b/src/mongo/logger/log_domain-impl.h @@ -41,73 +41,67 @@ namespace mongo { namespace logger { - template <typename E> - LogDomain<E>::LogDomain() - : _abortOnFailure(false) - {} - - template <typename E> - LogDomain<E>::~LogDomain() { - clearAppenders(); - } - - template <typename E> - Status LogDomain<E>::append(const E& event) { - for (typename AppenderVector::const_iterator iter = _appenders.begin(); - iter != _appenders.end(); ++iter) { - - if (*iter) { - Status status = (*iter)->append(event); - if (!status.isOK()) { - if (_abortOnFailure) { - ::abort(); - } - return status; +template <typename E> +LogDomain<E>::LogDomain() + : _abortOnFailure(false) {} + +template <typename E> +LogDomain<E>::~LogDomain() { + clearAppenders(); +} + +template <typename E> +Status LogDomain<E>::append(const E& event) { + for (typename AppenderVector::const_iterator iter = _appenders.begin(); + iter != _appenders.end(); + ++iter) { + if (*iter) { + Status status = (*iter)->append(event); + if (!status.isOK()) { + if (_abortOnFailure) { + ::abort(); } + return status; } } - return Status::OK(); } - - template <typename E> - typename LogDomain<E>::AppenderHandle LogDomain<E>::attachAppender( - typename LogDomain<E>::AppenderAutoPtr appender) { - - typename AppenderVector::iterator iter = std::find( - _appenders.begin(), - _appenders.end(), - static_cast<EventAppender*>(NULL)); - - if (iter == _appenders.end()) { - _appenders.push_back(appender.release()); - return AppenderHandle(_appenders.size() - 1); - } - else { - *iter = appender.release(); - return AppenderHandle(iter - _appenders.begin()); - } + return Status::OK(); +} + +template <typename E> +typename LogDomain<E>::AppenderHandle LogDomain<E>::attachAppender( + typename LogDomain<E>::AppenderAutoPtr appender) { + typename AppenderVector::iterator iter = + std::find(_appenders.begin(), _appenders.end(), static_cast<EventAppender*>(NULL)); + + if (iter == _appenders.end()) { + _appenders.push_back(appender.release()); + return AppenderHandle(_appenders.size() - 1); + } else { + *iter = appender.release(); + return AppenderHandle(iter - _appenders.begin()); } - - template <typename E> - typename LogDomain<E>::AppenderAutoPtr LogDomain<E>::detachAppender( - typename LogDomain<E>::AppenderHandle handle) { - - EventAppender*& appender = _appenders.at(handle._index); - AppenderAutoPtr result(appender); - appender = NULL; - return result; +} + +template <typename E> +typename LogDomain<E>::AppenderAutoPtr LogDomain<E>::detachAppender( + typename LogDomain<E>::AppenderHandle handle) { + EventAppender*& appender = _appenders.at(handle._index); + AppenderAutoPtr result(appender); + appender = NULL; + return result; +} + +template <typename E> +void LogDomain<E>::clearAppenders() { + for (typename AppenderVector::const_iterator iter = _appenders.begin(); + iter != _appenders.end(); + ++iter) { + delete *iter; } - template <typename E> - void LogDomain<E>::clearAppenders() { - for(typename AppenderVector::const_iterator iter = _appenders.begin(); - iter != _appenders.end(); ++iter) { - - delete *iter; - } - - _appenders.clear(); - } + _appenders.clear(); +} } // namespace logger } // namespace mongo |