--- smsdaemon/PluginManager.cpp 2008/06/09 18:15:53 26 +++ smsdaemon/PluginManager.cpp 2008/12/07 11:08:31 137 @@ -4,7 +4,12 @@ #include "common.h" #include "plugins/EchoPlugin.h" - +#include "plugins/SpamPlugin.h" +#include "plugins/ShellExecPlugin.h" +#include "plugins/TogPlugin.h" +#include "plugins/StatusPlugin.h" +#include "plugins/ListPlugin.h" +#include "plugins/HostStatusPlugin.h" typedef std::map::iterator MapIterator; @@ -17,21 +22,50 @@ } +void PluginManager::AddPlugin(Plugin* plugin) +{ + Common* cmn = Common::instance(); + + if (plugin != 0) + { + std::string command = plugin->GetCommand(); + + if ( _plugins[ command ] == 0) + _plugins[ command ] = plugin; + else + cmn->logMessage( std::string("AddPlugin() -- already have a plugin called ") + command); + } + else + { + cmn->logMessage("AddPlugin() -- cannot register a null pointer"); + } +} + void PluginManager::LoadPlugins() { Common* cmn = Common::instance(); static EchoPlugin echo; - _plugins[ echo.GetCommand() ] = &echo; - + + static SpamPlugin spam; + + static ShellExecPlugin wake("wake", "/home/torben/bin/wake", false, false); + static ShellExecPlugin ping("ping", "nmap -sP 192.168.10.1-255 | grep appears | awk '{print $2}'", false,true); + + static TogPlugin tog; + + static StatusPlugin status; + + static ListPlugin list; + + static HostStatusPlugin hoststatus; for(MapIterator it = _plugins.begin(); it != _plugins.end(); ++it) { Plugin* pl = (*it).second; - cmn->logMessage( std::string("Loaded plugin \"") + pl->GetCommand() + "\" - " + pl->GetDescription() ); + if (pl != 0) + cmn->logMessage( std::string("Loaded plugin \"") + pl->GetCommand() + "\" - " + pl->GetDescription() ); } - - } Plugin* PluginManager::GetPlugin(const std::string& pluginname)