00001 // ===================================================================== 00028 // ===================================================================== 00029 #ifndef CLDAQ__TSIGNALHANDLER_HH 00030 #define CLDAQ__TSIGNALHANDLER_HH 00031 00032 #include "Tglobals.h" 00033 00034 class TSignalClient; 00035 00036 00056 class TSignalHandler 00057 { 00058 00059 public: 00060 enum { MAX_SIGNAL_ENTRY = 32 }; 00061 00062 protected: 00063 static TSignalHandler* handler_list[ MAX_SIGNAL_ENTRY ]; 00064 00065 protected: 00066 Tint signal_id; 00067 TSignalClient* client; 00068 00069 protected: 00070 Tvoid signal_ucr( Tint sig ); 00071 00072 public: 00073 TSignalHandler( Tint psignalid, TSignalClient* pclient ); 00074 00075 public: 00076 Tvoid Enable(); 00077 Tvoid Disable(); 00078 Tint Wait(); 00079 00080 public: 00081 static Tvoid Initialize(); 00082 00083 protected: 00084 static Tvoid signal_handler( Tint, Tint, struct sigcontext* , Tchar* ); 00085 00086 #ifdef __CLDAQ_ROOT_DLL 00087 ClassDef(TSignalHandler,0) 00088 #endif 00089 00090 }; 00091 00092 #endif