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(). | |
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(). | |
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. | |
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 Member Functions | |
virtual void | do_start () |
virtual void | do_run () |
virtual void | do_stop () |
virtual void | do_load () |
virtual void | do_unload () |
bool | dec_log_level (void *) |
bool | inc_log_level (void *) |
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.
|
inline |
Construct a new WvStreamsDaemon with given name and version, and use the cb function to populate the daemon with its initial streams.
Definition at line 56 of file wvstreamsdaemon.h.
|
protectedvirtual |
Reimplemented from WvDaemon.
Definition at line 25 of file wvstreamsdaemon.cc.
|
protectedvirtual |
Reimplemented from WvDaemon.
Definition at line 32 of file wvstreamsdaemon.cc.
|
protectedvirtual |
Reimplemented from WvDaemon.
Definition at line 47 of file wvstreamsdaemon.cc.
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().
|
inline |
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.
Definition at line 87 of file wvstreamsdaemon.h.
void WvStreamsDaemon::setcallback | ( | WvDaemonCallback | cb | ) |
Change the callback function and userdata.
Definition at line 108 of file wvstreamsdaemon.cc.
|
inline |
Definition at line 103 of file wvstreamsdaemon.h.
|
protectedvirtualinherited |
Definition at line 245 of file wvdaemon.cc.
|
protectedvirtualinherited |
Definition at line 320 of file wvdaemon.cc.
|
inlineprotectedinherited |
Definition at line 144 of file wvdaemon.h.
|
inlineprotectedinherited |
Definition at line 151 of file wvdaemon.h.
|
inherited |
Run the daemon with no argument processing. Returns exit status.
Definition at line 119 of file wvdaemon.cc.
References WvDaemon::daemonize, WvDaemon::log, and WvDaemon::name.
Referenced by WvDaemon::run().
|
inherited |
Run the daemon after doing argument processing. Returns exit status.
Definition at line 204 of file wvdaemon.cc.
References WvDaemon::args, WvArgs::process(), and WvDaemon::run().
|
inlineinherited |
Force the daemon to restart as soon as the run callback exits.
Definition at line 182 of file wvdaemon.h.
|
inlineinherited |
Force the daemon to exit as soon as the run callback exits.
Definition at line 187 of file wvdaemon.h.
|
inlineinherited |
Whether the daemon will restart when the run callback exits.
Definition at line 194 of file wvdaemon.h.
|
inlineinherited |
Whether the daemon will quit when the run callback exits.
Definition at line 199 of file wvdaemon.h.
|
inlineinherited |
Whether the daemon should continue runnning.
Definition at line 205 of file wvdaemon.h.
|
inlineinherited |
Remaining args.
Definition at line 211 of file wvdaemon.h.
|
inlinestaticinherited |
Definition at line 216 of file wvdaemon.h.
|
inherited |
The name and version of the daemon; used for -V and logging.
Definition at line 93 of file wvdaemon.h.
Referenced by WvDaemon::run().
|
inherited |
Definition at line 94 of file wvdaemon.h.
|
inherited |
The path to the pid file to use for the daemon; defaults to /var/run/name.pid, where name is above.
Definition at line 97 of file wvdaemon.h.
|
inherited |
Whether the daemon should daemonize by default (it can be changed by the default options); defaults to false.
Definition at line 100 of file wvdaemon.h.
Referenced by WvDaemon::run().
|
inherited |
The arguments the daemon accepts; the defaults are described above.
Definition at line 104 of file wvdaemon.h.
Referenced by WvDaemon::run().
|
inherited |
The daemon's log mechanism.
Definition at line 106 of file wvdaemon.h.
Referenced by WvDaemon::run().
|
inherited |
Definition at line 107 of file wvdaemon.h.
|
inherited |
Definition at line 108 of file wvdaemon.h.
|
inherited |
See the class description.
Definition at line 113 of file wvdaemon.h.
|
inherited |
Definition at line 114 of file wvdaemon.h.
|
inherited |
Definition at line 115 of file wvdaemon.h.
|
inherited |
Definition at line 116 of file wvdaemon.h.
|
inherited |
Definition at line 117 of file wvdaemon.h.
|
protectedinherited |
Definition at line 158 of file wvdaemon.h.