00001 // -*- C++ -*- 00021 #ifndef COIL_SIGNAL_H 00022 #define COIL_SIGNAL_H 00023 #include <stdio.h> 00024 #include <stdlib.h> 00025 #include <signal.h> 00026 00027 namespace coil 00028 { 00029 #define _SIG_WORDS 4 00030 #define _SIG_MAXSIG NSIG 00031 00032 typedef void (*SignalHandler)(int); 00033 typedef struct __sigset { 00034 unsigned int __bits[_SIG_WORDS]; 00035 } sigset_t; 00036 00050 class SignalAction 00051 { 00052 public: 00068 SignalAction(); 00069 00095 SignalAction(SignalHandler handle, int signum, sigset_t *mask = 0, 00096 int flags = 0); 00097 00113 ~SignalAction(); 00114 00115 private: 00116 SignalAction(const SignalAction&); 00117 SignalAction& operator=(const SignalAction &); 00118 SignalHandler m_handle; 00119 int m_signum; 00120 sigset_t* m_mask; 00121 int m_flags; 00122 00123 }; 00124 }; 00125 #endif // COIL_SIGNAL_H