Class SignalHandler
Defined in File signal_handler.hpp
-
class SignalHandler
The SignalHandler class provides a mechanism to handle signals in a C++ program.
The SignalHandler class provides a way to handle signals in a C++ program. It allows registering global signal handlers and context-specific signal handlers. The class is implemented as a singleton, and its instance can be obtained using the get_instance() method.
Public Types
-
using GlobalSignalHandlerMap = std::unordered_map<int, std::function<void(int)>>
Type definition for a global signal handler map.
-
using SignalHandlerMap = std::unordered_map<int, std::function<void(void*, int)>>
Type definition for a signal handler map.
-
using ContextSignalHandlerMap = std::unordered_map<void*, SignalHandlerMap>
Type definition for a context-specific signal handler map.
Public Static Functions
-
static SignalHandler &get_instance()
Returns the singleton instance of the SignalHandler class.
- Returns
SignalHandler& The singleton instance of the SignalHandler class.
-
static void static_handle_signal(int signal)
The static method to handles the specified signal.
- Parameters
signal – The signal to handle.
-
static void install_signal_handler(int signal = 0)
Installs the signal handler for the specified signal.
- Parameters
signal – The signal to install the signal handler for. If signal is 0, the signal handler is installed for all existing signals.
-
static void register_global_signal_handler(int signal, std::function<void(int)> handler, bool overwrite = false)
Registers a global signal handler for the specified signal.
- Parameters
signal – The signal to register the global signal handler for.
handler – The global signal handler function.
overwrite – If true, overwrites any existing global signal handler for the specified signal.
-
static void register_signal_handler(void *context, int signal, std::function<void(void*, int)> handler, bool overwrite = false)
Registers a context-specific signal handler for the specified signal.
- Parameters
context – The context to register the signal handler for.
signal – The signal to register the signal handler for.
handler – The signal handler function.
overwrite – If true, overwrites any existing signal handler for the specified context and signal.
-
static void unregister_global_signal_handler(int signal)
Unregisters the global signal handler for the specified signal.
- Parameters
signal – The signal to unregister the global signal handler for.
-
static void unregister_signal_handler(void *context, int signal)
Unregisters the context-specific signal handler for the specified context and signal.
- Parameters
context – The context to unregister the signal handler for.
signal – The signal to unregister the signal handler for.
-
static void clear_all_signal_handlers()
Clears all signal handlers.
-
static void clear_global_signal_handlers()
Clears all global signal handlers.
-
static void clear_signal_handlers()
Clears all context-specific signal handlers.
-
using GlobalSignalHandlerMap = std::unordered_map<int, std::function<void(int)>>