/[projects]/smsdaemon/Common.cpp
ViewVC logotype

Contents of /smsdaemon/Common.cpp

Parent Directory Parent Directory | Revision Log Revision Log


Revision 208 - (show annotations) (download)
Sun Dec 21 18:41:08 2008 UTC (15 years, 5 months ago) by torben
File size: 2523 byte(s)
Enable dynamic reload of plugins/tasks when recieving a HUP signal

1 #include "Common.h"
2
3
4 #include "version.h"
5
6 #include <stdlib.h>
7 #include <string>
8 #include <iostream>
9 #include <iomanip>
10 #include <sstream>
11 #include <time.h>
12
13 #include "TaskManager.h"
14 #include "PluginManager.h"
15 #include "ConfigFile.h"
16
17 using namespace std;
18
19 Common* Common::instance()
20 {
21 static Common store;
22 return &store;
23 }
24
25
26 Common::Common()
27 : _pluginManager(0), _taskManager(0)
28 {
29 _pluginManager = new PluginManager();
30 _taskManager = new TaskManager();
31 configFilePath = "/etc/smsdaemon.conf";
32 _configFile = new ConfigFile();
33
34 daemonized = false;
35 reloadConfig = false;
36 }
37
38
39 Common::~Common()
40 {
41 if (_pluginManager)
42 delete _pluginManager;
43
44 if (_taskManager)
45 delete _taskManager;
46 }
47
48 PluginManager* Common::GetPluginManager()
49 {
50 return _pluginManager;
51 }
52
53 TaskManager* Common::GetTaskManager()
54 {
55 return _taskManager;
56 }
57
58 ConfigFile* Common::GetConfigfile()
59 {
60 return _configFile;
61 }
62
63
64 void Common::printUsage()
65 {
66 cout << VERSION << endl;
67 cout << SVNVERSION << endl << endl;
68 cout << "Usage --daemon|--debug [arguments]" << endl;
69 cout << "Commandline arguments :" << endl;
70 cout << " --daemon : Run in daemon (background) mode" << endl;
71 cout << " --debug : Run as normal (frontground) process," << endl;
72 cout << " with all messages written to std out" << endl;
73 cout << " --config <file>: Specify which config file to use " << endl;
74 cout << " default" << configFilePath << endl;
75 cout << " --help : Show this help screen" << endl;
76
77 exit(0);
78 }
79
80 void Common::loadConfig(int argc, char* argv[])
81 {
82 isDaemon = false;
83 isDebug = false;
84
85 for (int i = 1; i< argc; i++)
86 {
87 string current(argv[i]);
88 if (current == "--daemon")
89 {
90 isDaemon = true;
91 isDebug = false;
92
93 }
94 else if (current == "--debug")
95 {
96 isDaemon = false;
97 isDebug = true;
98 }
99 else if (current == "--config")
100 {
101 i++;
102 if ( i<argc)
103 {
104 configFilePath = argv[i];
105 }
106 else
107 {
108 printUsage();
109 exit(1);
110 }
111
112 }
113 else if (current == "-h" || current == "--help")
114 {
115 printUsage();
116 }
117 else
118 {
119 cout << "Unknown argument : " << current << endl << endl;
120 }
121 }
122
123 if (! ( isDaemon || isDebug))
124 printUsage();
125 }
126
127
128 std::string Common::getStatusMessage()
129 {
130 long int now = time(0);
131
132 long int diff = now - this->daemonStart;
133
134
135 std::ostringstream out;
136 out << "Uptime " << diff << " seconds. ";
137 out << "Messages received:" << this->smsCounter.incomming << ". ";
138 out << "Messages sent:" << this->smsCounter.outgoing << ".";
139
140 return out.str();
141 }

Properties

Name Value
svn:mergeinfo

  ViewVC Help
Powered by ViewVC 1.1.20