Horizon
log_dispatcher.hpp
1 #pragma once
2 #include <glibmm/dispatcher.h>
3 #include "logger.hpp"
4 #include <mutex>
5 
6 namespace horizon {
7 
8 class LogDispatcher {
9 public:
10  LogDispatcher();
11  void log(const Logger::Item &item);
12  void set_handler(Logger::log_handler_t h);
13 
14 private:
15  Glib::Dispatcher dispatcher;
16  Logger::log_handler_t handler;
17 
18  std::mutex mutex;
19  std::list<Logger::Item> items;
20 };
21 
22 } // namespace horizon