WvStreams
Public Member Functions | Static Public Member Functions | Public Attributes | Protected Member Functions | Protected Attributes | List of all members
WvStreamsDaemon Class Reference

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>

Inheritance diagram for WvStreamsDaemon:
Inheritance graph
[legend]

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 WvStringListextra_args () const
 Remaining args.
 

Static Public Member Functions

static WvDaemonme ()
 

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
 

Detailed Description

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.

Member Function Documentation

◆ add_stream()

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().

◆ 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().

◆ add_die_stream()

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().


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