// Spectre 2 // // Douglas Thrift // // $Id$ #ifndef _Daemon_hpp_ #define _Daemon_hpp_ #include "Spectre2.hpp" #ifndef MENES_PRAGMA_ONCE #pragma once #endif #include #include class Daemon { private: _H thread; int loop(); protected: bool running, loaded; virtual void load() = 0; virtual void run() = 0; Daemon() : running(false), loaded(false) {} public: virtual ~Daemon() { if (!thread.IsEmpty()) thread->Join(); } void start(); void reload() { loaded = false; } void stop() { running = false; } }; #endif // _Daemon_hpp_