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

Diff of /smsdaemon/PluginManager.cpp

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

revision 205 by torben, Fri Dec 19 22:29:25 2008 UTC revision 520 by torben, Sat Dec 26 23:01:01 2009 UTC
# Line 1  Line 1 
   
1  #include "PluginManager.h"  #include "PluginManager.h"
2    
3  #include "Logger.h"  #include "Logger.h"
# Line 6  Line 5 
5  #include "Common.h"  #include "Common.h"
6  #include "Util.h"  #include "Util.h"
7    
8    
9    #include "ProxyPlugin.h"
10  #include "plugins/EchoPlugin.h"  #include "plugins/EchoPlugin.h"
11  #include "plugins/SpamPlugin.h"  #include "plugins/SpamPlugin.h"
12  #include "plugins/ShellExecPlugin.h"  #include "plugins/ShellExecPlugin.h"
# Line 15  Line 16 
16  #include "plugins/HostStatusPlugin.h"  #include "plugins/HostStatusPlugin.h"
17  #include "plugins/WeatherPlugin.h"  #include "plugins/WeatherPlugin.h"
18  #include "plugins/UrlTriggerPlugin.h"  #include "plugins/UrlTriggerPlugin.h"
19    #include "plugins/DelaySpamPlugin.h"
20    
21    
22    #include "AccessManager.h"
23    
24  typedef std::map<std::string, Plugin*>::iterator MapIterator;  typedef std::map<std::string, Plugin*>::iterator MapIterator;
25    
# Line 79  Plugin* PluginManager::CreatePlugin(cons Line 84  Plugin* PluginManager::CreatePlugin(cons
84    
85          if (pluginName == "urltrigger")          if (pluginName == "urltrigger")
86                  return new UrlTriggerPlugin(args);                  return new UrlTriggerPlugin(args);
87    
88            if (pluginName == "delayspam")
89                    return new DelaySpamPlugin();
90                    
91          return 0;          return 0;
92  }  }
93    
 void PluginManager::LoadPlugins()  
 {  
 /*  
   
         static ShellExecPlugin wake("wake", "/usr/local/bin/wake", false, false);  
         static ShellExecPlugin ping("ping", "nmap -sP 192.168.10.1-255 | grep appears | awk '{print $2}'", false,true);  
94    
95    void PluginManager::DestroyPlugins()
96    {
97            for (std::map<std::string,Plugin*>::iterator it=_plugins.begin(); it!=_plugins.end(); ++it)
98            {
99                    delete it->second;
100            }
101            _plugins.clear();
102    }
103    
104    void PluginManager::LoadPlugins()
105    {
106          static UrlTriggerPlugin urltrigger("tou", "http://t-hoerup.dk/test.php");          Logger::logMessage("-------- PluginList --------");
 */  
   
107          std::vector<Value> pluginlist = Common::instance()->GetConfigfile()->GetValues("smsdaemon", "plugin");          std::vector<Value> pluginlist = Common::instance()->GetConfigfile()->GetValues("smsdaemon", "plugin");
108    
109          for (unsigned i=0; i<pluginlist.size(); i++)          for (unsigned i=0; i<pluginlist.size(); i++)
# Line 132  void PluginManager::LoadPlugins() Line 140  void PluginManager::LoadPlugins()
140                  }                  }
141    
142                  if (pl)                  if (pl)
143                    {
144                          AddPlugin(pl);                          AddPlugin(pl);
145                            ParseCommonOptions(name,args);
146                    }
147                  else                  else
148                          Logger::logMessage( std::string("Unknown plugin: ")+name);                          Logger::logMessage( std::string("Unknown plugin: ")+name);
149                                    
150          }                }      
151    
152    
   
153          for (MapIterator it = _plugins.begin(); it != _plugins.end(); ++it)          for (MapIterator it = _plugins.begin(); it != _plugins.end(); ++it)
154          {          {
155                  Plugin* pl = (*it).second;                  Plugin* pl = (*it).second;
# Line 148  void PluginManager::LoadPlugins() Line 158  void PluginManager::LoadPlugins()
158          }          }
159  }  }
160    
161  void PluginManager::DestroyPlugins()  void PluginManager::ParseCommonOptions(const std::string& pluginName, std::map<std::string,std::string>& args)
162  {  {
163            if (args["privileged"] == "1")
164            {
165                    AccessManager::AddPrivPlugin(pluginName);
166            }
167  }  }
168    
169  Plugin* PluginManager::GetPlugin(const std::string& pluginname)  Plugin* PluginManager::GetPlugin(const std::string& pluginname)
170  {  {
171          return _plugins[ pluginname ];          static ProxyPlugin proxy;
172    
173            std::map<std::string,Plugin*>::iterator it = _plugins.find(pluginname );
174    
175            if (it != _plugins.end() )
176            {
177                    proxy.SetPlugin(it->second);
178                    return &proxy;
179            }
180            else
181            {
182                    return 0;
183            }
184  }  }
185    
186    

Legend:
Removed from v.205  
changed lines
  Added in v.520

  ViewVC Help
Powered by ViewVC 1.1.20