From 1bdddd7da2ebe39b0b817e08673aef7756438796 Mon Sep 17 00:00:00 2001 From: Christian Pointner Date: Wed, 20 Jan 2010 06:52:41 +0000 Subject: moved from SignalHandler Classes to boost::functions --- src/signalController.h | 36 ++++++++++-------------------------- 1 file changed, 10 insertions(+), 26 deletions(-) (limited to 'src/signalController.h') diff --git a/src/signalController.h b/src/signalController.h index fdf5034..2602cc0 100644 --- a/src/signalController.h +++ b/src/signalController.h @@ -35,33 +35,16 @@ #include #include +#include #include "threadUtils.hpp" #define SIGERROR -1 -class SignalHandler -{ -public: - virtual ~SignalHandler() {} - - virtual int handle() { return 0; } - virtual int handle(const std::string& msg) { return 0; } - -protected: - SignalHandler(int s) : sigNum(s) {} - -private: - int sigNum; - friend class SignalController; -}; - -class SigErrorHandler : public SignalHandler -{ -public: - SigErrorHandler() : SignalHandler(SIGERROR) {} - int handle(const std::string& msg); -}; +typedef int SigNum; +typedef boost::function SignalHandler; +typedef enum { CALLB_RUNNING, CALLB_STOPPING } CallbackType; +typedef boost::function ServiceCallback; class SignalController { @@ -73,10 +56,8 @@ public: void inject(int sig, const std::string& msg = ""); private: - typedef std::map HandlerMap; - SignalController() {}; - ~SignalController(); + ~SignalController() {}; SignalController(const SignalController &s); void operator=(const SignalController &s); @@ -95,8 +76,11 @@ private: Mutex sigQueueMutex; Semaphore sigQueueSem; + typedef std::map HandlerMap; HandlerMap handler; - + typedef std::map CallbackMap; + CallbackMap callbacks; + friend void registerSignalHandler(SignalController& ctrl); }; -- cgit v1.2.3