summaryrefslogtreecommitdiff
path: root/project2/daemon/p2daemonAppEngine.h
diff options
context:
space:
mode:
Diffstat (limited to 'project2/daemon/p2daemonAppEngine.h')
-rw-r--r--project2/daemon/p2daemonAppEngine.h20
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