diff options
author | Jose <jose@zeroc.com> | 2012-08-16 15:58:01 +0200 |
---|---|---|
committer | Jose <jose@zeroc.com> | 2012-08-16 15:58:01 +0200 |
commit | 0b82edbd44b61ab36592f73728e76d1fd11a3aa2 (patch) | |
tree | 8f8a0b6d5cb22a95dfc4b2c257d0eb7c0fe62c9b /cpp/src/Ice/PluginManagerI.h | |
parent | ICE-4820 - Service class public API (diff) | |
download | ice-0b82edbd44b61ab36592f73728e76d1fd11a3aa2.tar.bz2 ice-0b82edbd44b61ab36592f73728e76d1fd11a3aa2.tar.xz ice-0b82edbd44b61ab36592f73728e76d1fd11a3aa2.zip |
ICE-4609 - Add ability to load shared library with full path
- C++/Java now also support to load Services and Plugins from
a full path, this was already supported by .NET
- Fixed the parsing of plug-in arguments to correct split the
arguments
- Fixed Plugin manager destroy C++/Java/C#, the plugin must
are now destroyed in initialization reverse order as documented.
Diffstat (limited to 'cpp/src/Ice/PluginManagerI.h')
-rw-r--r-- | cpp/src/Ice/PluginManagerI.h | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/cpp/src/Ice/PluginManagerI.h b/cpp/src/Ice/PluginManagerI.h index ecb73fa3a43..a7b7578ebaa 100644 --- a/cpp/src/Ice/PluginManagerI.h +++ b/cpp/src/Ice/PluginManagerI.h @@ -41,17 +41,25 @@ private: PluginManagerI(const CommunicatorPtr&, const IceInternal::DynamicLibraryListPtr&); friend class IceInternal::Instance; - friend void IceInternal::loadPlugin(const Ice::CommunicatorPtr&, const std::string&, const std::string&, + friend void IceInternal::loadPlugin(const Ice::CommunicatorPtr&, const std::string&, const std::string&, Ice::StringSeq&); void loadPlugins(int&, char*[]); void loadPlugin(const std::string&, const std::string&, StringSeq&); + PluginPtr findPlugin(const std::string&) const; + CommunicatorPtr _communicator; IceInternal::DynamicLibraryListPtr _libraries; - std::map<std::string, PluginPtr> _plugins; - std::vector<PluginPtr> _initOrder; + struct PluginInfo + { + std::string name; + PluginPtr plugin; + }; + typedef std::vector<PluginInfo> PluginInfoList; + + PluginInfoList _plugins; bool _initialized; static const char * const _kindOfObject; }; |