X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Flogger.h;h=3a10f0e89177e10c071b97cd389c79e4d46a1404;hb=c8c51fac9453a677fc3e6932c4730f35e237af89;hp=c22339f55928270dacadccc02fb2c27302b85b42;hpb=519f2006e8b33e9b14fdc985766ab4e4e869544b;p=builder.git diff --git a/source/logger.h b/source/logger.h index c22339f..3a10f0e 100644 --- a/source/logger.h +++ b/source/logger.h @@ -1,19 +1,34 @@ #ifndef LOGGER_H_ #define LOGGER_H_ -#include #include +#include +#include class Logger { private: - std::set enabled_channels; + std::vector enabled_channels; public: void enable_channel(const std::string &); void disable_channel(const std::string &); + bool is_channel_enabled(const std::string &) const; void log(const std::string &, const std::string &) const; + + template + void log(const std::string &, const std::string &, Args &&...) const; + +private: + void print(const std::string &) const; }; +template +void Logger::log(const std::string &chan, const std::string &fmt, Args &&... args) const +{ + if(is_channel_enabled(chan)) + print(Msp::format(fmt, std::forward(args)...)); +} + #endif