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

Annotation of /smsdaemon/PluginManager.cpp

Parent Directory Parent Directory | Revision Log Revision Log


Revision 101 - (hide annotations) (download)
Mon Jun 16 16:41:18 2008 UTC (15 years, 11 months ago) by torben
File size: 1614 byte(s)
Finally is the version.h working as i want to

Added a StatusPlugin

1 torben 26
2     #include "PluginManager.h"
3    
4     #include "common.h"
5    
6 torben 27 #include "EchoPlugin.h"
7 torben 28 #include "SpamPlugin.h"
8 torben 35 #include "ShellExecPlugin.h"
9 torben 49 #include "TogPlugin.h"
10 torben 101 #include "StatusPlugin.h"
11 torben 26
12     typedef std::map<std::string, Plugin*>::iterator MapIterator;
13    
14     PluginManager::PluginManager()
15     {
16     }
17    
18     PluginManager::~PluginManager()
19     {
20     }
21    
22    
23 torben 28 void PluginManager::AddPlugin(Plugin* plugin)
24     {
25 torben 35 Common* cmn = Common::instance();
26    
27     if (plugin != 0)
28     {
29     std::string command = plugin->GetCommand();
30    
31     if ( _plugins[ command ] == 0)
32     _plugins[ command ] = plugin;
33     else
34     cmn->logMessage( std::string("AddPlugin() -- already have a plugin called ") + command);
35     }
36     else
37     {
38     cmn->logMessage("AddPlugin() -- cannot register a null pointer");
39     }
40 torben 28 }
41    
42 torben 26 void PluginManager::LoadPlugins()
43     {
44     Common* cmn = Common::instance();
45    
46     static EchoPlugin echo;
47 torben 28
48     static SpamPlugin spam;
49 torben 26
50 torben 56 static ShellExecPlugin wake("wake", "/home/torben/bin/wake", false);
51 torben 35
52 torben 49 static TogPlugin tog;
53    
54 torben 101 static StatusPlugin status;
55    
56 torben 26 for(MapIterator it = _plugins.begin(); it != _plugins.end(); ++it)
57     {
58     Plugin* pl = (*it).second;
59 torben 35 if (pl != 0)
60     cmn->logMessage( std::string("Loaded plugin \"") + pl->GetCommand() + "\" - " + pl->GetDescription() );
61 torben 26 }
62     }
63    
64     Plugin* PluginManager::GetPlugin(const std::string& pluginname)
65     {
66     return _plugins[ pluginname ];
67     }
68    
69    
70     std::vector<Plugin*> PluginManager::GetPluginList()
71     {
72     typedef std::map<std::string, Plugin*>::iterator MapIterator;
73     std::vector<Plugin*> plugin_list;
74    
75     for (MapIterator it = _plugins.begin(); it != _plugins.end(); ++it)
76     {
77     Plugin* pl = (*it).second;
78     plugin_list.push_back(pl);
79     }
80    
81    
82     return plugin_list;
83     }

  ViewVC Help
Powered by ViewVC 1.1.20