00001 // ===================================================================== 00024 // ===================================================================== 00025 #ifndef CLDAQ__TSIGNALHANDLER_HH 00026 #define CLDAQ__TSIGNALHANDLER_HH 00027 00028 #include "Tglobals.h" 00029 00030 class TSignalClient; 00031 00032 00052 class TSignalHandler 00053 { 00054 00055 public: 00056 enum { MAX_SIGNAL_ENTRY = 32 }; 00057 00058 protected: 00059 static TSignalHandler* handler_list[ MAX_SIGNAL_ENTRY ]; 00060 00061 protected: 00062 Tint signal_id; 00063 TSignalClient* client; 00064 00065 protected: 00066 Tvoid signal_ucr( Tint sig ); 00067 00068 public: 00069 TSignalHandler( Tint psignalid, TSignalClient* pclient ); 00070 00071 public: 00072 Tvoid Enable(); 00073 Tvoid Disable(); 00074 Tint Wait(); 00075 00076 public: 00077 static Tvoid Initialize(); 00078 00079 protected: 00080 static Tvoid signal_handler( Tint, Tint, struct sigcontext* , Tchar* ); 00081 00082 }; 00083 00084 #endif