diff options
author | Christian Pointner <equinox@anytun.org> | 2010-01-20 07:38:36 +0000 |
---|---|---|
committer | Christian Pointner <equinox@anytun.org> | 2010-01-20 07:38:36 +0000 |
commit | 91b4dfa446e352f5d9c7d0ef58da1ceee9ce7b34 (patch) | |
tree | bcc677584cbec7bedf9b6f112fd14a78d0e06f82 /src/signalController.cpp | |
parent | updated windows signal handler (diff) |
integrated winservice into signal controller
Diffstat (limited to 'src/signalController.cpp')
-rw-r--r-- | src/signalController.cpp | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/src/signalController.cpp b/src/signalController.cpp index f0191fe..ca6d044 100644 --- a/src/signalController.cpp +++ b/src/signalController.cpp @@ -64,12 +64,23 @@ int SigErrorHandler(const SigNum& /*sig*/, const std::string& msg) #ifndef _MSC_VER #include "signalHandler.hpp" #else -#include "win32/signalHandler.hpp" + #ifdef WIN_SERVICE + #include "win32/signalServiceHandler.hpp" + #else + #include "win32/signalHandler.hpp" + #endif #endif void SignalController::init() { - registerSignalHandler(*this); + DaemonService service; + registerSignalHandler(*this, service); + handler[SIGERROR] = boost::bind(SigErrorHandler, _1, _2); +} + +void SignalController::init(DaemonService& service) +{ + registerSignalHandler(*this, service); handler[SIGERROR] = boost::bind(SigErrorHandler, _1, _2); } @@ -86,7 +97,7 @@ int SignalController::run() { for(CallbackMap::iterator it = callbacks.begin(); it != callbacks.end(); ++it) if(it->first == CALLB_RUNNING) - it->second(CALLB_RUNNING); + it->second(); int ret = 0; while(1) { @@ -112,7 +123,7 @@ int SignalController::run() for(CallbackMap::iterator it = callbacks.begin(); it != callbacks.end(); ++it) if(it->first == CALLB_STOPPING) - it->second(CALLB_STOPPING); + it->second(); return ret; } |