diff options
Diffstat (limited to 'project2/daemon/p2daemonAppEngine.h')
-rw-r--r-- | project2/daemon/p2daemonAppEngine.h | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/project2/daemon/p2daemonAppEngine.h b/project2/daemon/p2daemonAppEngine.h index 42eddc7..0b16f70 100644 --- a/project2/daemon/p2daemonAppEngine.h +++ b/project2/daemon/p2daemonAppEngine.h @@ -4,27 +4,39 @@ #include <options.h> #include <boost/optional.hpp> #include "lib/daemon.h" +#include <thread> +#include <glibmm/main.h> class DaemonAppEngine { public: DaemonAppEngine(int, char **); ~DaemonAppEngine(); - void process() const; + void process(); INITOPTIONS; static Glib::ustring reqPlatform; static std::string daemonType; + static int periodicTimeout; protected: + typedef boost::function<void(int)> SignalFunc; + typedef std::map<int, const SignalFunc> SignalMap; + static void IgnoreSignal(int signum); static void DefaultSignalHandler(int signum); - static void AddSignalHandler(int signum, sighandler_t handler); + static void AddSignalHandler(int signum, const SignalFunc & handler); + + static SignalMap signalMap; + static void signalHandler(int); private: - static void shutdown(int); - static DaemonPtr daemon; + Glib::RefPtr<Glib::MainLoop> main_loop; + std::thread * evThread; + bool periodicCallback(); + void shutdown(); + DaemonPtr daemon; }; #endif |