Constructor.
Task used to send command and confirm the response
Called after arguments and config file parsing.
Command line arguments used by the application.
Command line arguments extension used by the application.
Configuration parser to use to parse the configuration files.
Configuration parsing extension instance.
Logging extension instance.
Version information.
Version information extension.
Stats log extension -- TODO auto configured or what? Why public? getter for StatsLog instance?
Timer handler extension.
Signal handler extension. Directs registered signals to the onSignal() method.
Reopenable files extension. Hooks into the stats, log, and signal extentions, and automatically reopens logfiles upon receipt of the SIGHUP signal (presumably sent from logrotate).
PidLock extension. Tries to create and lock the pid lock file (if specified in the config), ensuring that only one application instance per pidlock may exist.
Unix socket extension to register commands for the application to respond to.
Extension to start run method inside a task.
Struct containing optional constructor arguments. There are enough of these that handling them as default arguments to the ctor is cumbersome.
This method must be called in order for signal and timer event handling to start being processed. As it registers clients (the stats timer and signal handler) with epoll which will always reregister themselves after firing, you should call this method when you are about to start your application's main event loop.
Run implementation that forwards to the abstract run(Arguments, ConfigParser).
This method must be implemented by subclasses to do the actual application work.
Exit cleanly from the application, passing the specified return code to the OS and optionally printing the specified message to the console.
Collects CPU and memory stats and reports it to stats log. Should be called periodically (inside onStatsTimer).
Collects CPU and memory stats for incoming prometheus' requests. Should be sent, as a callback, to the CollectorRegistry instance used in prometheus request listener.
Collects GC stats and reports them to stats log. Should be called periodically (inside onStatsTimer).
Collects GC stats for incoming prometheus' requests. Should be sent, as a callback, to the CollectorRegistry instance used in prometheus request listener.
Called by the timer extension when the stats period fires. By default does nothing, but should be overridden to write the required stats.
ISignalExtExtension method default implementation.
IArgumentsExtExtension methods dummy implementation.
IConfigExtExtension methods dummy implementation.
ILogExtExtension methods dummy implementation.
Main application class