#include <SignalHandler.h>
Collaboration diagram for SignalHandler:
Public Member Functions | |
EventHandler * | register_handler (int signum, EventHandler *eh, bool override=false) |
EventHandler * | remove_handler (int signum) |
virtual | ~SignalHandler () |
Static Public Member Functions | |
static SignalHandler * | instance () |
Friends | |
class | HTTPCacheTest |
class | SignalHandlerTest |
This class treats signals it registers (using the EventHandler abstract class) differently than ones registered using the signal()
or sigaction()
system interfaces. If the register_handler() method is called and an instance of EventHandler is already bound to signum, then the old EventHandler is returned. However, if there's an existing handler that was set up with sigaction()
, ..., it won't be returned. Instead it will either be run after the newly registered EventHandler or ignored, depending on register_handler()'s override parameter. This feature may be used only for POSIX.1 signals which cause process termination. They are: SIGHUP, SIGINT, SIGKILL, SIGPIPE, SIGALRM, SIGTERM, SIGUSR1, and SIGUSR2.
Definition at line 63 of file SignalHandler.h.
virtual SignalHandler::~SignalHandler | ( | ) | [inline, virtual] |
Definition at line 104 of file SignalHandler.h.
SignalHandler * SignalHandler::instance | ( | ) | [static] |
Get a pointer to the single instance of SignalHandler.
Definition at line 122 of file SignalHandler.cc.
Referenced by DODSFilter::establish_timeout().
EventHandler * SignalHandler::register_handler | ( | int | signum, | |
EventHandler * | eh, | |||
bool | override = false | |||
) |
Register an event handler. By default run any previously registered action/handler such as those installed using sigaction()
. For signals such as SIGALRM (the alarm signal) this may not be what you want; see the override parameter. See also the class description.
signum | Bind the event handler to this signal number. Limited to those signals that, according to POSIX.1, cause process termination. | |
eh | A pointer to the EventHandler for signum . | |
override | If true , do not run the default handler/action. Instead run eh and then treat the signal as if the original action was SIG_IGN. Default is false. |
Definition at line 142 of file SignalHandler.cc.
References long_to_string().
Referenced by DODSFilter::establish_timeout().
Here is the call graph for this function:
EventHandler * SignalHandler::remove_handler | ( | int | signum | ) |
Remove the event hander.
signum | The signal number of the handler to remove. |
Definition at line 211 of file SignalHandler.cc.
friend class HTTPCacheTest [friend] |
Definition at line 98 of file SignalHandler.h.
friend class SignalHandlerTest [friend] |
Definition at line 97 of file SignalHandler.h.