Clio develop
The XRP Ledger API server.
Loading...
Searching...
No Matches
util::SignalsHandler Class Reference

Class handling signals. More...

#include <SignalsHandler.hpp>

Public Types

enum class  Priority { StopFirst = 0 , Normal = 1 , StopLast = 2 }
 Enum for stop priority.
 

Public Member Functions

 SignalsHandler (util::config::ClioConfigDefinition const &config, std::function< void()> forceExitHandler=kDEFAULT_FORCE_EXIT_HANDLER)
 Create SignalsHandler object.
 
 SignalsHandler (SignalsHandler const &)=delete
 
 SignalsHandler (SignalsHandler &&)=delete
 
SignalsHandleroperator= (SignalsHandler const &)=delete
 
SignalsHandleroperator= (SignalsHandler &&)=delete
 
 ~SignalsHandler ()
 Destructor of SignalsHandler.
 
template<std::invocable SomeCallback>
void subscribeToStop (SomeCallback &&callback, Priority priority=Priority::Normal)
 Subscribe to stop signal.
 

Static Public Attributes

static constexpr auto kHANDLED_SIGNALS = {SIGINT, SIGTERM}
 

Friends

class impl::SignalsHandlerStatic
 

Detailed Description

Class handling signals.

Note
There could be only one instance of this class.

Constructor & Destructor Documentation

◆ SignalsHandler()

util::SignalsHandler::SignalsHandler ( util::config::ClioConfigDefinition const & config,
std::function< void()> forceExitHandler = kDEFAULT_FORCE_EXIT_HANDLER )

Create SignalsHandler object.

Parameters
configThe configuration.
forceExitHandlerThe handler for forced exit.

Member Function Documentation

◆ subscribeToStop()

template<std::invocable SomeCallback>
void util::SignalsHandler::subscribeToStop ( SomeCallback && callback,
Priority priority = Priority::Normal )
inline

Subscribe to stop signal.

Template Parameters
SomeCallbackThe type of the callback.
Parameters
callbackThe callback to call on stop signal.
priorityThe priority of the callback. Default is Normal.

The documentation for this class was generated from the following files: