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

Diff of /smsdaemon/PluginManager.cpp

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

revision 208 by torben, Sun Dec 21 18:41:08 2008 UTC revision 521 by torben, Sun Dec 27 18:01:36 2009 UTC
# Line 5  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 17 
17  #include "plugins/WeatherPlugin.h"  #include "plugins/WeatherPlugin.h"
18  #include "plugins/UrlTriggerPlugin.h"  #include "plugins/UrlTriggerPlugin.h"
19    
20    
21    #include "AccessManager.h"
22    
23  typedef std::map<std::string, Plugin*>::iterator MapIterator;  typedef std::map<std::string, Plugin*>::iterator MapIterator;
24    
25  PluginManager::PluginManager()  PluginManager::PluginManager()
# Line 78  Plugin* PluginManager::CreatePlugin(cons Line 83  Plugin* PluginManager::CreatePlugin(cons
83    
84          if (pluginName == "urltrigger")          if (pluginName == "urltrigger")
85                  return new UrlTriggerPlugin(args);                  return new UrlTriggerPlugin(args);
86            
87          return 0;          return 0;
88  }  }
89    
# Line 131  void PluginManager::LoadPlugins() Line 136  void PluginManager::LoadPlugins()
136                  }                  }
137    
138                  if (pl)                  if (pl)
139                    {
140                          AddPlugin(pl);                          AddPlugin(pl);
141                            ParseCommonOptions(name,args);
142                    }
143                  else                  else
144                          Logger::logMessage( std::string("Unknown plugin: ")+name);                          Logger::logMessage( std::string("Unknown plugin: ")+name);
145                                    
# Line 146  void PluginManager::LoadPlugins() Line 154  void PluginManager::LoadPlugins()
154          }          }
155  }  }
156    
157    void PluginManager::ParseCommonOptions(const std::string& pluginName, std::map<std::string,std::string>& args)
158    {
159            if (args["privileged"] == "1")
160            {
161                    AccessManager::AddPrivPlugin(pluginName);
162            }
163    }
164    
165  Plugin* PluginManager::GetPlugin(const std::string& pluginname)  Plugin* PluginManager::GetPlugin(const std::string& pluginname)
166  {  {
167          return _plugins[ pluginname ];          static ProxyPlugin proxy;
168    
169            std::map<std::string,Plugin*>::iterator it = _plugins.find(pluginname );
170    
171            if (it != _plugins.end() )
172            {
173                    proxy.SetPlugin(it->second);
174                    return &proxy;
175            }
176            else
177            {
178                    return 0;
179            }
180  }  }
181    
182    

Legend:
Removed from v.208  
changed lines
  Added in v.521

  ViewVC Help
Powered by ViewVC 1.1.20