.. _program_listing_file_include_gwmodelpp_Logger.h: Program Listing for File Logger.h ================================= |exhale_lsh| :ref:`Return to documentation for file ` (``include/gwmodelpp/Logger.h``) .. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS .. code-block:: cpp #ifndef GWMLOGGER_H #define GWMLOGGER_H #include #include #include namespace gwm { inline std::string strjoin(const std::string& delm, const std::vector& str_array) { std::string ss = *str_array.cbegin(); for (auto it = str_array.cbegin() + 1; it != str_array.cend(); it++) ss += (delm + *it); return ss; } struct ITelegram { virtual ~ITelegram() {} enum class LogLevel { LOG_EMERG = 0, LOG_ALERT = 1, LOG_CRIT = 2, LOG_ERR = 3, LOG_WARNING = 4, LOG_NOTICE = 5, LOG_INFO = 6, LOG_DEBUG = 7 }; virtual void print(std::string message, ITelegram::LogLevel level, std::string fun_name, std::string file_name) = 0; virtual void progress(std::size_t current, std::size_t total, std::string fun_name, std::string file_name) = 0; virtual void progress(double percent, std::string fun_name, std::string file_name) = 0; virtual bool stop() = 0; }; class Logger : public ITelegram { public: Logger() {} ~Logger() {} void print(std::string message, LogLevel level, std::string fun_name, std::string file_name) override { (void)message; (void)level; (void)fun_name; (void)file_name; } void progress(std::size_t current, std::size_t total, std::string fun_name, std::string file_name) override { (void)current; (void)total; (void)fun_name; (void)file_name; } void progress(double percent, std::string fun_name, std::string file_name) override { (void)percent; (void)fun_name; (void)file_name; } bool stop() override { return false; } }; } #endif // GWMLOGGER_H