UNIX signal event. More...
#include <senf/Scheduler/SignalEvent.hh>
Public Types | |
typedef boost::function< void(siginfo_t const &)> | Callback |
Callback type. More... | |
Public Types inherited from senf::scheduler::detail::FIFORunner::TaskInfo | |
enum | Priority { PRIORITY_LOW = 0, PRIORITY_NORMAL = 1, PRIORITY_HIGH = 2 } |
Public Member Functions | |
void | disable () |
Enable signal event registration. More... | |
void | enable () |
Disable the signal event registration. More... | |
void | action (Callback const &cb) |
Change signal event callback. More... | |
Public Member Functions inherited from senf::scheduler::detail::FIFORunner::TaskInfo | |
TaskInfo (std::string const &name, Priority priority=PRIORITY_NORMAL) | |
virtual | ~TaskInfo () |
void | run () |
bool | runnable () const |
Public Member Functions inherited from senf::scheduler::detail::Event | |
std::string const & | name () const |
Get event name. More... | |
bool | enabled () const |
true , if event is enabled, false otherwise More... | |
unsigned | runCount () const |
Number of times, event was fired. More... | |
char const * | type () const |
Event type code. More... | |
std::string | info () const |
Additional event information. More... | |
Event (std::string const &name) | |
virtual | ~Event () |
Structors and default members | |
SignalEvent (int signal, Callback const &cb, bool initiallyEnabled=true) | |
Register a signal event. More... | |
~SignalEvent () | |
Additional Inherited Members | |
Protected Member Functions inherited from senf::scheduler::detail::FIFORunner::TaskInfo | |
void | setRunnable () |
Protected Member Functions inherited from senf::scheduler::detail::Event | |
void | countRun () |
UNIX signal event.
The SignalEvent class registers a callback for UNIX signals. The callback will be called synchronously (not from within the UNIX signal handler) by the scheduler.
The SignalEvent class is an implementation of the RAII idiom: The event will be automatically unregistered in the SignalEvent destructor. The SignalEvent instance should be created within the same scope or on a scope below where the callback is defined (e.g. if the callback is a member function it should be defined as a class member).
Definition at line 53 of file SignalEvent.hh.
typedef boost::function<void (siginfo_t const &)> senf::scheduler::SignalEvent::Callback |
Callback type.
Definition at line 61 of file SignalEvent.hh.
senf::scheduler::SignalEvent::SignalEvent | ( | int | signal, |
Callback const & | cb, | ||
bool | initiallyEnabled = true |
||
) |
Register a signal event.
Registers cb as callback for the UNIX signal signal. If initiallyEnabled is set false
, the callback will not be enabled automatically. Use enable() to do so.
[in] | signal | UNIX signal to register callback for |
[in] | cb | Callback to call |
[in] | initiallyEnabled | if set false , do not enable callback automatically. |
senf::scheduler::SignalEvent::~SignalEvent | ( | ) |
void senf::scheduler::SignalEvent::action | ( | Callback const & | cb | ) |
Change signal event callback.
void senf::scheduler::SignalEvent::disable | ( | ) |
Enable signal event registration.
void senf::scheduler::SignalEvent::enable | ( | ) |
Disable the signal event registration.