00001 // -*- C++ -*- 00020 #ifndef COIL_SIGNAL_H 00021 #define COIL_SIGNAL_H 00022 00023 #include <signal.h> 00024 00025 namespace coil 00026 { 00027 typedef void (*SignalHandler)(int); 00028 00029 class SignalAction 00030 { 00031 public: 00032 SignalAction(); 00033 SignalAction(SignalHandler handle, int signum); 00034 00035 ~SignalAction(); 00036 private: 00037 SignalAction(const SignalAction&); 00038 SignalAction& operator=(const SignalAction &); 00039 SignalHandler m_handle; 00040 int m_signum; 00041 sigset_t* m_mask; 00042 int m_flags; 00043 00044 }; 00045 }; 00046 #endif // COIL_SIGNAL_H