diff options
Diffstat (limited to 'lib/server/Daemon.h')
-rw-r--r-- | lib/server/Daemon.h | 28 |
1 files changed, 21 insertions, 7 deletions
diff --git a/lib/server/Daemon.h b/lib/server/Daemon.h index 482f926e..a3212a00 100644 --- a/lib/server/Daemon.h +++ b/lib/server/Daemon.h @@ -19,8 +19,8 @@ #include <string> #include "BoxTime.h" +#include "Configuration.h" -class Configuration; class ConfigurationVerify; // -------------------------------------------------------------------------- @@ -40,7 +40,8 @@ private: Daemon(const Daemon &rToCopy); public: - int Main(const char *DefaultConfigFile, int argc, const char *argv[]); + virtual int Main(const char *DefaultConfigFile, int argc, + const char *argv[]); /* override this Main() if you want custom option processing: */ virtual int Main(const std::string &rConfigFile); @@ -53,7 +54,10 @@ public: virtual std::string DaemonBanner() const; virtual const ConfigurationVerify *GetConfigVerify() const; virtual void Usage(); - + + virtual bool Configure(const std::string& rConfigFileName); + virtual bool Configure(const Configuration& rConfig); + bool StopRun() {return mReloadConfigWanted | mTerminateWanted;} bool IsReloadConfigWanted() {return mReloadConfigWanted;} bool IsTerminateWanted() {return mTerminateWanted;} @@ -62,12 +66,20 @@ public: void SetReloadConfigWanted() {mReloadConfigWanted = true;} void SetTerminateWanted() {mTerminateWanted = true;} - virtual void SetupInInitialProcess(); virtual void EnterChild(); static void SetProcessTitle(const char *format, ...); + void SetRunInForeground(bool foreground) + { + mRunInForeground = foreground; + } + void SetSingleProcess(bool value) + { + mSingleProcess = value; + } protected: + virtual void SetupInInitialProcess(); box_time_t GetLoadedConfigModifiedTime() const; bool IsSingleProcess() { return mSingleProcess; } virtual std::string GetOptionString(); @@ -78,7 +90,7 @@ private: box_time_t GetConfigFileModifiedTime() const; std::string mConfigFileName; - Configuration *mpConfiguration; + std::auto_ptr<Configuration> mapConfiguration; box_time_t mLoadedConfigModifiedTime; bool mReloadConfigWanted; bool mTerminateWanted; @@ -91,8 +103,10 @@ private: std::string mAppName; }; -#define DAEMON_VERIFY_SERVER_KEYS {"PidFile", 0, ConfigTest_Exists, 0}, \ - {"User", 0, ConfigTest_LastEntry, 0} +#define DAEMON_VERIFY_SERVER_KEYS \ + ConfigurationVerifyKey("PidFile", ConfigTest_Exists), \ + ConfigurationVerifyKey("LogFacility", 0), \ + ConfigurationVerifyKey("User", ConfigTest_LastEntry) #endif // DAEMON__H |