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 00042 class SignalAction 00043 { 00044 public: 00060 SignalAction(); 00061 00083 SignalAction(SignalHandler handle, int signum); 00084 00100 ~SignalAction(); 00101 00102 private: 00103 SignalAction(const SignalAction&); 00104 SignalAction& operator=(const SignalAction &); 00105 SignalHandler m_handle; 00106 int m_signum; 00107 sigset_t* m_mask; 00108 int m_flags; 00109 00110 }; 00111 }; 00112 #endif // COIL_SIGNAL_H