X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Flogger.cpp;h=35d45079e98e8b05dc5b44413c5cd094fdb802e1;hb=5e00719d0c63e306786ff36df61797cdbc86f3e9;hp=901800ec30fc2736113227988cc480f25a722d45;hpb=519f2006e8b33e9b14fdc985766ab4e4e869544b;p=builder.git diff --git a/source/logger.cpp b/source/logger.cpp index 901800e..35d4507 100644 --- a/source/logger.cpp +++ b/source/logger.cpp @@ -1,3 +1,4 @@ +#include #include #include "logger.h" @@ -6,16 +7,31 @@ using namespace Msp; void Logger::enable_channel(const string &chan) { - enabled_channels.insert(chan); + auto i = lower_bound(enabled_channels, chan); + if(i==enabled_channels.end() || *i!=chan) + enabled_channels.insert(i, chan); } void Logger::disable_channel(const string &chan) { - enabled_channels.erase(chan); + auto i = lower_bound(enabled_channels, chan); + if(i!=enabled_channels.end() && *i==chan) + enabled_channels.erase(i); +} + +bool Logger::is_channel_enabled(const string &chan) const +{ + auto i = lower_bound(enabled_channels, chan); + return (i!=enabled_channels.end() && *i==chan); } void Logger::log(const string &chan, const string &message) const { - if(enabled_channels.count(chan)) - IO::print("%s\n", message); + if(is_channel_enabled(chan)) + print(message); +} + +void Logger::print(const string &message) const +{ + IO::print("%s\n", message); }