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