www.pudn.com > zfxcengine-0.1.0.zip > ceLogDomain.cpp
/* $Id: ceLogDomain.cpp,v 1.3 2005/07/03 17:01:44 andreaskohn Exp $ */ #include#include namespace ZFXCE { namespace Logging { using std::make_pair; //////////////////////////////////////////////////////////////////////////////// ceLogDomain::ceLogDomain(string domain) : _domain(domain) { // Disable all levels, define empty lists of streams. for (ceLogLevel i = LOG_DEBUG; i < LOG_NUMLEVELS; i++) { _streams[i] = make_pair(false, list ()); } } //////////////////////////////////////////////////////////////////////////////// string ceLogDomain::getDomain() const { return _domain; } //////////////////////////////////////////////////////////////////////////////// void ceLogDomain::attachStream(const ceLogLevel& level, ceLogStream* stream) { ceLogStreamList streams = _streams[level].second; streams.push_back(stream); _streams[level] = make_pair(_streams[level].first, streams); } //////////////////////////////////////////////////////////////////////////////// void ceLogDomain::removeStream(const ceLogLevel& level, ceLogStream* stream) { ceLogStreamList newStreams = _streams[level].second; newStreams.remove(stream); _streams[level] = make_pair(_streams[level].first, newStreams); } //////////////////////////////////////////////////////////////////////////////// void ceLogDomain::enableLevel(const ceLogLevel& level, bool enable) { _streams[level] = make_pair(enable, _streams[level].second); } //////////////////////////////////////////////////////////////////////////////// bool ceLogDomain::isLevelEnabled(const ceLogLevel& level) { return _streams[level].first && !ceLogConfig::getAllDisabled(); } //////////////////////////////////////////////////////////////////////////////// ceLogStreamList ceLogDomain::getStreams(const ceLogLevel& level, bool includeDefault) { ceLogStreamList streams = _streams[level].second; if (includeDefault) { streams.insert( streams.begin(), ceLogConfig::getDefaultDomain()._streams[level].second.begin(), ceLogConfig::getDefaultDomain()._streams[level].second.end()); } return streams; } //////////////////////////////////////////////////////////////////////////////// } // namespace Logging } // namespace ZFXCE