changed to FbTk EventHandler and added SignalEvent

This commit is contained in:
fluxgen 2002-08-17 22:15:04 +00:00
parent 033a6dc462
commit 0515215ca7

View file

@ -19,15 +19,21 @@
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
// DEALINGS IN THE SOFTWARE. // DEALINGS IN THE SOFTWARE.
// $Id: SignalHandler.hh,v 1.2 2002/08/14 22:49:32 fluxgen Exp $ // $Id: SignalHandler.hh,v 1.3 2002/08/17 22:15:04 fluxgen Exp $
#ifndef FBTK_SIGNALHANDLER_HH #ifndef FBTK_SIGNALHANDLER_HH
#define FBTK_SIGNALHANDLER_HH #define FBTK_SIGNALHANDLER_HH
#include "EventHandler.hh"
#include <signal.h> #include <signal.h>
namespace FbTk { namespace FbTk {
struct SignalEvent {
int signum;
};
/** /**
Handles system signals, singleton. Handles system signals, singleton.
Usage: inherit the class EventHandler and then register Usage: inherit the class EventHandler and then register
@ -36,13 +42,6 @@ namespace FbTk {
*/ */
class SignalHandler { class SignalHandler {
public: public:
/**
Inherit this class to handle signals.
*/
class EventHandler {
public:
virtual void handleSignal(int signum) = 0;
};
/// get singleton object /// get singleton object
static SignalHandler *instance(); static SignalHandler *instance();
@ -53,7 +52,7 @@ public:
@param eh event handler @param eh event handler
@param oldhandler_ret return handler to old sighandler @param oldhandler_ret return handler to old sighandler
*/ */
bool registerHandler(int signum, EventHandler *eh, EventHandler **oldhandler_ret = 0); bool registerHandler(int signum, EventHandler<SignalEvent> *eh, EventHandler<SignalEvent> **oldhandler_ret = 0);
/** /**
removes the signum handler removes the signum handler
@param signum signal number @param signum signal number
@ -64,7 +63,7 @@ private:
static void handleSignal(int signum); static void handleSignal(int signum);
static EventHandler *s_signal_handler[NSIG]; ///< NSIG defined in signal.h static EventHandler<SignalEvent> *s_signal_handler[NSIG]; ///< NSIG defined in signal.h
}; };
}; // end namespace FbTk }; // end namespace FbTk