00001
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029 #ifndef __SignalHandler_h
00030 #define __SignalHandler_h
00031
00032 #if HAVE_CONFIG_H
00033 #include "config.h"
00034 #endif
00035
00036 #include "Debug.hpp"
00037 #include <cstdlib>
00038 #include <iostream>
00039 #include <boost/any.hpp>
00040 #include <boost/function.hpp>
00041
00043
00045
00046 namespace H {
00047
00049
00051
00053
00055
00062 class SignalHandler {
00063 public:
00064
00065 void initSignals();
00066 virtual void onSignalSegv();
00067 virtual void onSignalInt();
00068 virtual void onSignalHup();
00069 virtual void onSignalQuit();
00070 virtual void onSignalKill();
00071 virtual void onSignalTerm();
00072 virtual void onSignalStop();
00073 virtual void onSignalUnknown(int Signal);
00074
00075
00076 SignalHandler();
00077 virtual ~SignalHandler();
00078
00079
00080 static SignalHandler * mpThis;
00081
00082 private:
00083
00084 static void signalHandler(int Signal);
00085
00086
00087 };
00088
00089 }
00090
00091 #endif // __SignalHandler_h