summaryrefslogtreecommitdiff
path: root/cpp/src/Ice/PluginManagerI.h
diff options
context:
space:
mode:
authorJose <jose@zeroc.com>2012-08-16 15:58:01 +0200
committerJose <jose@zeroc.com>2012-08-16 15:58:01 +0200
commit0b82edbd44b61ab36592f73728e76d1fd11a3aa2 (patch)
tree8f8a0b6d5cb22a95dfc4b2c257d0eb7c0fe62c9b /cpp/src/Ice/PluginManagerI.h
parentICE-4820 - Service class public API (diff)
downloadice-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.h14
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;
};