--- smsdaemon/common.cpp 2008/06/09 18:15:53 26 +++ smsdaemon/common.cpp 2008/12/07 21:42:15 150 @@ -1,5 +1,9 @@ #include "common.h" + +#include "version.h" + +#include #include #include #include @@ -7,8 +11,12 @@ #include #include +#include "TaskManager.h" +#include "PluginManager.h" +#include "ConfigFile.h" + using namespace std; -char* Months[] = { "", "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov","Dec"}; +const char* Months[] = { "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov","Dec"}; Common* Common::instance() { @@ -17,6 +25,42 @@ } +Common::Common() + : _pluginManager(0), _taskManager(0) +{ + _pluginManager = new PluginManager(); + _taskManager = new TaskManager(); + configFilePath = "/etc/smsdaemon.conf"; + _configFile = new ConfigFile(); + + daemonized = false; +} + + +Common::~Common() +{ + if (_pluginManager) + delete _pluginManager; + + if (_taskManager) + delete _taskManager; +} + +PluginManager* Common::GetPluginManager() +{ + return _pluginManager; +} + +TaskManager* Common::GetTaskManager() +{ + return _taskManager; +} + +ConfigFile* Common::GetConfigfile() +{ + return _configFile; +} + void Common::logMessage(string msg) { time_t t = time(0); @@ -30,7 +74,7 @@ out << ":" << setw(2) << setfill('0') << now.tm_sec; out << " " << msg << endl; - if (this->isDaemon && _logFile != "") + if (this->isDaemon && _logFile != "" && daemonized) { seteuid(0); ofstream of( _logFile.c_str(), ios_base::out | ios_base::app | ios_base::ate);//append mode @@ -52,12 +96,15 @@ void Common::printUsage() { cout << VERSION << endl; + cout << SVNVERSION << endl << endl; cout << "Usage --daemon|--debug [arguments]" << endl; cout << "Commandline arguments :" << endl; - cout << " --daemon : Run in daemon (background) mode" << endl; - cout << " --debug : Run as normal (frontground) process," << endl; - cout << " with all messages written to std out" << endl; - cout << " --help : Show this help screen" << endl; + cout << " --daemon : Run in daemon (background) mode" << endl; + cout << " --debug : Run as normal (frontground) process," << endl; + cout << " with all messages written to std out" << endl; + cout << " --config : Specify which config file to use " << endl; + cout << " default" << configFilePath << endl; + cout << " --help : Show this help screen" << endl; exit(0); } @@ -81,17 +128,35 @@ isDaemon = false; isDebug = true; } + else if (current == "--config") + { + } else if (current == "-h" || current == "--help") { printUsage(); } else { - cout << VERSION; - cout << "Unknown argument : " << current << endl; + cout << "Unknown argument : " << current << endl << endl; } } if (! ( isDaemon || isDebug)) printUsage(); } + + +std::string Common::getStatusMessage() +{ + long int now = time(0); + + long int diff = now - this->daemonStart; + + + std::ostringstream out; + out << "Uptime " << diff << " seconds. "; + out << "Messages received:" << this->smsCounter.incomming << ". "; + out << "Messages sent:" << this->smsCounter.outgoing << "."; + + return out.str(); +}