summaryrefslogtreecommitdiff
path: root/lib/server/Daemon.h
diff options
context:
space:
mode:
authorReinhard Tartler <siretart@tauware.de>2009-04-02 13:58:11 +0200
committerReinhard Tartler <siretart@tauware.de>2009-04-02 13:58:11 +0200
commita84d45498bd861c9225080232948a99c2e317bb8 (patch)
tree8f1f5fb7bf7ffbf6f24cf4a4fd6888a235dbcc08 /lib/server/Daemon.h
parent25db897553a0db0f912602b375029e724f51556e (diff)
Import upstream version 0.11~rc3~r2491
Diffstat (limited to 'lib/server/Daemon.h')
-rw-r--r--lib/server/Daemon.h28
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