diff options
Diffstat (limited to 'lib/MiddleWare/PluginManager.cpp')
| -rw-r--r-- | lib/MiddleWare/PluginManager.cpp | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/lib/MiddleWare/PluginManager.cpp b/lib/MiddleWare/PluginManager.cpp index 00c54fa..2f103f2 100644 --- a/lib/MiddleWare/PluginManager.cpp +++ b/lib/MiddleWare/PluginManager.cpp @@ -116,8 +116,19 @@ void CPluginManager::RegisterPlugin(const std::string& pName) { std::string path = m_sPlugisConfDir + "/" + pName + "." + PLUGINS_CONF_EXTENSION; CPlugin* plugin = m_mapABRTPlugins[pName]->PluginNew(); - plugin->Init(); - plugin->LoadSettings(path); + try + { + plugin->Init(); + plugin->LoadSettings(path); + } + catch (std::string sError) + { + std::cerr << "Can not initialize plugin " << pName << "(" + << plugin_type_str_t[m_mapABRTPlugins[pName]->GetType()] + << ")" << std::endl; + UnLoadPlugin(pName); + return; + } m_mapPlugins[pName] = plugin; std::cerr << "Registred plugin " << pName << "(" << plugin_type_str_t[m_mapABRTPlugins[pName]->GetType()] |
