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

Diff of /smsdaemon/PluginManager.cpp

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 27 by torben, Mon Jun 9 19:22:59 2008 UTC revision 203 by torben, Fri Dec 19 07:03:34 2008 UTC
# Line 1  Line 1 
           
 #include "PluginManager.h"  
1    
2  #include "common.h"  #include "PluginManager.h"
3    
4  #include "EchoPlugin.h"  #include "Logger.h"
5    
6    #include "plugins/EchoPlugin.h"
7    #include "plugins/SpamPlugin.h"
8    #include "plugins/ShellExecPlugin.h"
9    #include "plugins/TogPlugin.h"
10    #include "plugins/StatusPlugin.h"
11    #include "plugins/ListPlugin.h"
12    #include "plugins/HostStatusPlugin.h"
13    #include "plugins/WeatherPlugin.h"
14    #include "plugins/UrlTriggerPlugin.h"
15    
16  typedef std::map<std::string, Plugin*>::iterator MapIterator;  typedef std::map<std::string, Plugin*>::iterator MapIterator;
17    
18  PluginManager::PluginManager()  PluginManager::PluginManager()
19  {  {
20  }  }
21            
22  PluginManager::~PluginManager()  PluginManager::~PluginManager()
23  {  {
24  }  }
25    
26    
27  void PluginManager::LoadPlugins()  void PluginManager::AddPlugin(Plugin* plugin)
28  {  {
29          Common* cmn = Common::instance();          if (plugin != 0)
30            {
31                    if (plugin->IsHelper())
32                    {
33                            _helper_plugins.push_back(plugin);
34                    }
35                    else
36                    {
37                            std::string command = plugin->GetCommand();
38    
39                            if ( _plugins[ command ] == 0)
40                                    _plugins[ command ] = plugin;
41                            else
42                                    Logger::logMessage( std::string("AddPlugin() -- already have a plugin called ") + command);
43                    }
44            }
45            else
46            {
47                    Logger::logMessage("AddPlugin() -- cannot register a null pointer");
48            }
49    }
50    
51    void PluginManager::LoadPlugins()
52    {
53          static EchoPlugin echo;          static EchoPlugin echo;
         _plugins[ echo.GetCommand() ] = &echo;  
           
54    
55          for(MapIterator it = _plugins.begin(); it != _plugins.end(); ++it)          static SpamPlugin spam;
56    
57            static ShellExecPlugin wake("wake", "/usr/local/bin/wake", false, false);
58            static ShellExecPlugin ping("ping", "nmap -sP 192.168.10.1-255 | grep appears | awk '{print $2}'", false,true);
59    
60            static TogPlugin tog;
61    
62            static StatusPlugin status;
63    
64            static ListPlugin list;
65    
66            static HostStatusPlugin hoststatus;
67    
68            static WeatherPlugin weather;
69    
70            static UrlTriggerPlugin urltrigger("tou", "http://t-hoerup.dk/test.php");
71    
72            for (MapIterator it = _plugins.begin(); it != _plugins.end(); ++it)
73          {          {
74                  Plugin* pl = (*it).second;                  Plugin* pl = (*it).second;
75                  cmn->logMessage( std::string("Loaded plugin \"") + pl->GetCommand() + "\" - " + pl->GetDescription() );                  if (pl != 0)
76                            Logger::logMessage( std::string("Loaded plugin \"") + pl->GetCommand() + "\" - " + pl->GetDescription() );
77          }          }
   
   
78  }  }
79    
80  Plugin* PluginManager::GetPlugin(const std::string& pluginname)  Plugin* PluginManager::GetPlugin(const std::string& pluginname)

Legend:
Removed from v.27  
changed lines
  Added in v.203

  ViewVC Help
Powered by ViewVC 1.1.20