From 591078f9c90100b1f6926bdac55877aa864f2238 Mon Sep 17 00:00:00 2001 From: Christian Pointner Date: Tue, 10 Mar 2009 14:38:34 +0000 Subject: added SIGERROR to signal Controller --- src/signalController.h | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) (limited to 'src/signalController.h') diff --git a/src/signalController.h b/src/signalController.h index ba46de0..575b50b 100644 --- a/src/signalController.h +++ b/src/signalController.h @@ -41,12 +41,15 @@ #include #endif +#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) {} @@ -56,6 +59,13 @@ private: friend class SignalController; }; +class SigErrorHandler : public SignalHandler +{ +public: + SigErrorHandler() : SignalHandler(SIGERROR) {} + int handle(const std::string& msg); +}; + #ifndef _MSC_VER class SigIntHandler : public SignalHandler { @@ -149,7 +159,7 @@ public: void init(); int run(); - void inject(int sig); + void inject(int sig, const std::string& msg = ""); private: typedef std::map HandlerMap; @@ -173,7 +183,8 @@ private: }; friend class instanceCleaner; - std::queue sigQueue; + typedef std::pair SigPair; + std::queue sigQueue; Mutex sigQueueMutex; Semaphore sigQueueSem; -- cgit v1.2.3