#include <vpr/Thread/Signal.h>
Public Member Functions | |
| SignalSet (const sigset_t *const sigset) | |
Initializes mSigSet with sigset. | |
| SignalSet (bool fill=false) | |
If fill is false then initialize the mSigSet to be empty. | |
| vpr::ReturnStatus | emptySet () |
| Creates a set that includes no signals defined by the system. | |
| vpr::ReturnStatus | fillSet () |
| Creates a set that includes all signals defined by the system. | |
| vpr::ReturnStatus | addSignal (const int sigNum) |
Adds the individual signal specified by sigNum to the set. | |
| vpr::ReturnStatus | removeSignal (const int sigNum) |
Deletes the individual signal specified by sigNum from the set. | |
| bool | isMember (const int sigNum) const |
Checks whether the signal specified by sigNum is in the set. | |
| const sigset_t * | getMask () const |
| Returns a constant pointer to the underlying sigset_t variable. | |
A signal set contains the set of system signals to be masked when used with a vpr::SignalAction.
Definition at line 98 of file Signal.h.
| vpr::SignalSet::SignalSet | ( | const sigset_t *const | sigset | ) | [inline] |
Initializes mSigSet with sigset.
If sigset == 0 then fill the set.
| sigset | The signal set used for initializing this object. |
Definition at line 107 of file Signal.h.
00108 { 00109 if ( sigset == 0 ) 00110 { 00111 fillSet(); 00112 } 00113 else 00114 { 00115 mSigSet = *sigset; 00116 } 00117 }
| vpr::SignalSet::SignalSet | ( | bool | fill = false |
) | [inline] |
If fill is false then initialize the mSigSet to be empty.
Otherwise, mSigSet is initialized to be full.
| fill | A boolean flag stating whether to fill this object's signal set or make it empty. |
Definition at line 126 of file Signal.h.
00127 { 00128 if ( fill ) 00129 { 00130 fillSet(); 00131 } 00132 else 00133 { 00134 emptySet(); 00135 } 00136 }
| vpr::ReturnStatus vpr::SignalSet::emptySet | ( | ) |
Creates a set that includes no signals defined by the system.
Definition at line 59 of file Signal.cpp.
References vpr::ReturnStatus::Fail, and vpr::ReturnStatus::setCode().
00060 { 00061 vpr::ReturnStatus status; 00062 00063 #ifdef HAVE_SIGEMPTYSET 00064 if ( sigemptyset(&mSigSet) != 0 ) 00065 { 00066 status.setCode(vpr::ReturnStatus::Fail); 00067 } 00068 #else 00069 mSigSet = 0; 00070 #endif 00071 00072 return status; 00073 }
| vpr::ReturnStatus vpr::SignalSet::fillSet | ( | ) |
Creates a set that includes all signals defined by the system.
Definition at line 75 of file Signal.cpp.
References vpr::ReturnStatus::Fail, and vpr::ReturnStatus::setCode().
00076 { 00077 vpr::ReturnStatus status; 00078 00079 #ifdef HAVE_SIGFILLSET 00080 if ( sigfillset(&mSigSet) != 0 ) { 00081 status.setCode(vpr::ReturnStatus::Fail); 00082 } 00083 #else 00084 mSigSet = ~(sigset_t) 0; 00085 #endif 00086 00087 return status; 00088 }
| vpr::ReturnStatus vpr::SignalSet::addSignal | ( | const int | sigNum | ) |
Adds the individual signal specified by sigNum to the set.
| sigNum | The signal number to be added. |
Definition at line 90 of file Signal.cpp.
References vpr::ReturnStatus::Fail, vpr::ReturnStatus::setCode(), and vprASSERT.
00091 { 00092 vpr::ReturnStatus status; 00093 00094 vprASSERT(sigNum >= 1 && "Invalid signal number"); 00095 00096 #ifdef HAVE_SIGADDSET 00097 if ( sigaddset(&mSigSet, sigNum) != 0 ) 00098 { 00099 status.setCode(vpr::ReturnStatus::Fail); 00100 } 00101 #else 00102 mSigSet |= (1 << (sigNum - 1)); 00103 #endif 00104 00105 return status; 00106 }
| vpr::ReturnStatus vpr::SignalSet::removeSignal | ( | const int | sigNum | ) |
Deletes the individual signal specified by sigNum from the set.
| sigNum | The signal number to be removed. |
Definition at line 108 of file Signal.cpp.
References vpr::ReturnStatus::Fail, vpr::ReturnStatus::setCode(), and vprASSERT.
00109 { 00110 vpr::ReturnStatus status; 00111 00112 vprASSERT(sigNum >= 1 && "Invalid signal number"); 00113 00114 #ifdef HAVE_SIGDELSET 00115 if ( sigdelset(&mSigSet, sigNum) != 0 ) 00116 { 00117 status.setCode(vpr::ReturnStatus::Fail); 00118 } 00119 #else 00120 mSigSet &= ~(1 << (sigNum - 1)) ; 00121 #endif 00122 00123 return status; 00124 }
| bool vpr::SignalSet::isMember | ( | const int | sigNum | ) | const |
Checks whether the signal specified by sigNum is in the set.
| sigNum | The signal number being checked. |
true is returned if sigNum is in this object's set.
false is returned otherwise.
Definition at line 126 of file Signal.cpp.
References vprASSERT.
00127 { 00128 bool is_member; 00129 00130 vprASSERT(sigNum >= 1 && "Invalid signal number"); 00131 00132 #ifdef HAVE_SIGISMEMBER 00133 is_member = (sigismember(&mSigSet, sigNum) == 1); 00134 #else 00135 is_member = ((mSigSet & (1 << (sigNum - 1))) != 0); 00136 #endif 00137 00138 return is_member; 00139 }
| const sigset_t* vpr::SignalSet::getMask | ( | ) | const [inline] |
Returns a constant pointer to the underlying sigset_t variable.
Definition at line 191 of file Signal.h.
Referenced by vpr::SignalAction::SignalAction().
1.5.1