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