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

Contents of /smsdaemon/plugins/PluginManager.cpp

Parent Directory Parent Directory | Revision Log Revision Log


Revision 49 - (show annotations) (download)
Wed Jun 11 10:21:47 2008 UTC (15 years, 11 months ago) by torben
File size: 1551 byte(s)
Make togplugin work

GsmModem.cpp - when sending SMS - truncate message body to 160 chars

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

  ViewVC Help
Powered by ViewVC 1.1.20