WvStreams
|
WvStreamsDaemon - High-level abstraction for a daemon process that does nothing but add streams to the global list and execute it. More...
#include <wvstreamsdaemon.h>
Public Member Functions | |
WvStreamsDaemon (WvStringParm name, WvStringParm version, WvDaemonCallback cb) | |
Construct a new WvStreamsDaemon with given name and version, and use the cb function to populate the daemon with its initial streams. | |
void | add_stream (IWvStream *istream, bool auto_free, const char *id) |
Add a stream to the daemon; don't do anything if it goes !isok(). More... | |
void | add_restart_stream (IWvStream *istream, bool auto_free, const char *id) |
Add a stream to the daemon; the daemon will restart, re-populating the initial streams using the callback passed to the constructor, if the stream goes !isok(). More... | |
void | add_die_stream (IWvStream *istream, bool auto_free, const char *id) |
Add a stream to the daemon; if the stream goes !isok() the daemon will exit. More... | |
void | close_existing_connections_on_restart () |
If this member is called then any existing streams on the globallist added after the WvDaemonCallback was executed will be closed if the daemon restarts; otherwise, they will persist after the restart. | |
void | setcallback (WvDaemonCallback cb) |
Change the callback function and userdata. | |
const char * | wstype () const |
int | run (const char *argv0) |
Run the daemon with no argument processing. Returns exit status. | |
int | run (int argc, char **argv) |
Run the daemon after doing argument processing. Returns exit status. | |
void | restart () |
Force the daemon to restart as soon as the run callback exits. | |
void | die (int status=0) |
Force the daemon to exit as soon as the run callback exits. | |
bool | want_to_restart () const |
Whether the daemon will restart when the run callback exits. | |
bool | want_to_die () const |
Whether the daemon will quit when the run callback exits. | |
bool | should_run () const |
Whether the daemon should continue runnning. | |
const WvStringList & | extra_args () const |
Remaining args. | |
Static Public Member Functions | |
static WvDaemon * | me () |
Public Attributes | |
WvString | name |
The name and version of the daemon; used for -V and logging. | |
WvString | version |
WvString | pid_file |
The path to the pid file to use for the daemon; defaults to /var/run/name.pid, where name is above. | |
bool | daemonize |
Whether the daemon should daemonize by default (it can be changed by the default options); defaults to false. | |
WvArgs | args |
The arguments the daemon accepts; the defaults are described above. | |
WvLog | log |
The daemon's log mechanism. | |
WvLog::LogLevel | log_level |
bool | syslog |
WvDaemonCallback | load_callback |
See the class description. | |
WvDaemonCallback | start_callback |
WvDaemonCallback | run_callback |
WvDaemonCallback | stop_callback |
WvDaemonCallback | unload_callback |
Protected Attributes | |
WvStringList | _extra_args |
WvStreamsDaemon - High-level abstraction for a daemon process that does nothing but add streams to the global list and execute it.
This is generally what a modern WvStreams-based daemon should look like.
The WvDaemonCallback function passed in the constructor is used to populate the globallist with streams that are necessary when the daemon starts, such as listening sockets. These streams are added using the WvStreamsDaemon::add_stream, WvStreamsDaemon::add_die_stream and WvStreamsDaemon::add_restart_stream members, the last two governing what happens to the daemon when the stream is !isok().
Definition at line 30 of file wvstreamsdaemon.h.
void WvStreamsDaemon::add_stream | ( | IWvStream * | istream, |
bool | auto_free, | ||
const char * | id | ||
) |
Add a stream to the daemon; don't do anything if it goes !isok().
This should be called from the WvDaemonCallback function passed to the constructor.
Definition at line 59 of file wvstreamsdaemon.cc.
Referenced by add_die_stream(), and add_restart_stream().
void WvStreamsDaemon::add_restart_stream | ( | IWvStream * | istream, |
bool | auto_free, | ||
const char * | id | ||
) |
Add a stream to the daemon; the daemon will restart, re-populating the initial streams using the callback passed to the constructor, if the stream goes !isok().
This should be called from the WvDaemonCallback function passed to the constructor.
Definition at line 68 of file wvstreamsdaemon.cc.
References add_stream(), and IWvStream::setclosecallback().
void WvStreamsDaemon::add_die_stream | ( | IWvStream * | istream, |
bool | auto_free, | ||
const char * | id | ||
) |
Add a stream to the daemon; if the stream goes !isok() the daemon will exit.
This should be called from the WvDaemonCallback function passed to the constructor.
Definition at line 77 of file wvstreamsdaemon.cc.
References add_stream(), and IWvStream::setclosecallback().