18 typedef wv::function<void()> WvDaemonCallback;
107 WvLog::LogLevel log_level;
114 WvDaemonCallback start_callback;
115 WvDaemonCallback run_callback;
116 WvDaemonCallback stop_callback;
117 WvDaemonCallback unload_callback;
121 virtual void do_load();
122 virtual void do_start();
123 virtual void do_run();
124 virtual void do_stop();
125 virtual void do_unload();
128 volatile bool _want_to_die;
129 volatile bool _want_to_restart;
130 volatile int _exit_status;
134 WvDaemonCallback _start_callback,
135 WvDaemonCallback _run_callback,
136 WvDaemonCallback _stop_callback);
138 int _run(
const char *argv0);
140 bool set_daemonize(
void *);
144 bool dec_log_level(
void *)
146 if ((
int)log_level > (
int)WvLog::Critical)
147 log_level = (WvLog::LogLevel)((
int)log_level - 1);
151 bool inc_log_level(
void *)
153 if ((
int)log_level < (
int)WvLog::Debug5)
154 log_level = (WvLog::LogLevel)((
int)log_level + 1);
165 WvDaemonCallback _start_callback,
166 WvDaemonCallback _run_callback,
167 WvDaemonCallback _stop_callback):
170 init(_name, _version, _start_callback, _run_callback,
177 int run(
const char *argv0);
179 int run(
int argc,
char **argv);
184 _want_to_restart =
true;
190 _exit_status = status;
196 return _want_to_restart;
207 return !_want_to_die && !_want_to_restart;
222 const char *wstype()
const {
return "WvDaemon"; }
225 #endif // __WVDAEMON_H