00001 // ===================================================================== 00002 // $Id: TSignalHandler.hh,v 1.1.1.1 2003/06/27 02:56:42 goiwai Exp $ 00003 // $Name: CLDAQ-1-06-02 $ 00004 // ===================================================================== 00005 #ifndef __TSIGNALHANDLER_HH 00006 #define __TSIGNALHANDLER_HH 00007 00008 #include "Tglobals.h" 00009 00010 class TSignalClient; 00011 00012 class TSignalHandler 00013 { 00014 00015 public: 00016 enum { MAX_SIGNAL_ENTRY = 32 }; 00017 00018 protected: 00019 static TSignalHandler* handler_list[ MAX_SIGNAL_ENTRY ]; 00020 00021 protected: 00022 Tint signal_id; 00023 TSignalClient* client; 00024 00025 protected: 00026 Tvoid signal_ucr( Tint sig ); 00027 00028 public: 00029 TSignalHandler( Tint psignalid, TSignalClient* pclient ); 00030 00031 public: 00032 Tvoid Enable(); 00033 Tvoid Disable(); 00034 Tint Wait(); 00035 00036 public: 00037 static Tvoid Initialize(); 00038 00039 protected: 00040 static Tvoid signal_handler( Tint, Tint, struct sigcontext* , Tchar* ); 00041 00042 }; 00043 00044 #endif