summaryrefslogtreecommitdiff
path: root/core/modules.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'core/modules.cpp')
-rw-r--r--core/modules.cpp49
1 files changed, 28 insertions, 21 deletions
diff --git a/core/modules.cpp b/core/modules.cpp
index 4910d71..8df3288 100644
--- a/core/modules.cpp
+++ b/core/modules.cpp
@@ -7,17 +7,24 @@ extern PLUGINLINK pluglink;
void load_modules()
{
std::string path = boost::filesystem::initial_path().directory_string(); //need some workaround for windows than called indirectly
- path.append("/plugins");
+ path.append("/plugins");
+ logger.log(LM_DEBUG, "Loading plugins...\n");
boost::filesystem::path pth(path);
if(!boost::filesystem::is_directory(pth))
return;
- boost::filesystem::directory_iterator i(pth), end = boost::filesystem::directory_iterator();
+ boost::filesystem::directory_iterator i(pth), end;
while(i != end)
{
- if(boost::filesystem::is_directory((*i).status())) //we not look in subdirectories
+ if(boost::filesystem::is_directory(*i)) //we not look in subdirectories
+ {
+ ++i;
continue;
+ }
if(!boost::filesystem::status_known((*i).status()))
+ {
+ ++i;
continue;
+ }
bool is_plugin = true;
plugin::exported_functions_s *funcs = new plugin::exported_functions_s;
memset(&funcs,0,sizeof(plugin::exported_functions_s));
@@ -39,34 +46,34 @@ void load_modules()
delete dll;
continue;
}
- PLUGININFO *info = funcs->SetPluginInfo();
- plugins.push_back(new plugin(dll, info, funcs));
+ PLUGININFO *info = funcs->SetPluginInfo();
+ plugins.push_back(new plugin(dll, info, funcs));
++i;
}
}
void run_plugins()
{ //now for testing only
- if(!plugins.empty())
- {
- std::list<plugin*>::iterator end = plugins.end();
- for(std::list<plugin*>::iterator i = plugins.begin(); i != end; ++i)
- {
- (*i)->get_exported_functions()->Load(&pluglink);
- (*i)->get_exported_functions()->OnModulesLoaded();
- }
- }
+ if(!plugins.empty())
+ {
+ std::list<plugin*>::iterator end = plugins.end();
+ for(std::list<plugin*>::iterator i = plugins.begin(); i != end; ++i)
+ {
+ (*i)->get_exported_functions()->Load(&pluglink);
+ (*i)->get_exported_functions()->OnModulesLoaded();
+ }
+ }
}
plugin::plugin(ACE_DLL *lib, PLUGININFO *info, exported_functions_s *funcs)
{
- if(lib)
- plug = lib;
- if(info)
- plugininfo = info;
- if(funcs)
- exported_funcs = funcs;
+ if(lib)
+ plug = lib;
+ if(info)
+ plugininfo = info;
+ if(funcs)
+ exported_funcs = funcs;
}
const plugin::exported_functions_s* plugin::get_exported_functions()
{
- return exported_funcs;
+ return exported_funcs;
}