// Custom includes
#include <boost/utility.hpp>
+#include "../Logger/SenfLog.hh"
//#include "Daemon.mpp"
///////////////////////////////hh.p////////////////////////////////////////
class Daemon : boost::noncopyable
{
public:
+ SENF_LOG_CLASS_AREA();
+
///////////////////////////////////////////////////////////////////////////
// Types
successful startup. */
int argc(); ///< Access command line parameter count
- char ** argv(); ///< Access command line parameters
+ char ** argv(); ///< Access command line parameters
+ void removeDaemonArgs(); ///< Remove the daemon arguments from argc()/argv()
+
+ static void exit(unsigned code=0); ///< Terminate daemon with failure
- static void exit(unsigned code=0); ///< Terminate daemon with failure
+ void logReopen(); ///< Reopen the log files
+ /**< This is used when rotating the logs. By default,
+ SIGHUP calls logReopen. */
///\}
/**< Normally not called directly but from the
\ref SENF_DAEMON_MAIN macro. */
+ static Daemon & instance(); ///< Return the Daemon instance
+
protected:
Daemon();
This member is only called, if the default main()
implementation is not overridden. */
private:
-
void openLog();
void fork();
bool pidfileCreate();
+ void installSighandlers();
int argc_;
char ** argv_;
bool pidfileCreated_;
bool detached_;
+
+ static Daemon * instance_;
};
/** \brief Provide \c main() function
}
///////////////////////////////hh.e////////////////////////////////////////
-//#include "Daemon.cci"
+#include "Daemon.cci"
//#include "Daemon.ct"
//#include "Daemon.cti"
#endif