diff options
Diffstat (limited to 'cpp/src')
-rw-r--r-- | cpp/src/Ice/PluginManagerI.cpp | 14 | ||||
-rw-r--r-- | cpp/src/Ice/PluginManagerI.h | 1 |
2 files changed, 15 insertions, 0 deletions
diff --git a/cpp/src/Ice/PluginManagerI.cpp b/cpp/src/Ice/PluginManagerI.cpp index 6e1e2f99449..75c9e70d4f6 100644 --- a/cpp/src/Ice/PluginManagerI.cpp +++ b/cpp/src/Ice/PluginManagerI.cpp @@ -68,6 +68,20 @@ Ice::PluginManagerI::initializePlugins() _initialized = true; } +StringSeq +Ice::PluginManagerI::getPlugins() +{ + IceUtil::Mutex::Lock sync(*this); + + StringSeq names; + map<string, PluginPtr>::iterator r; + for(r = _plugins.begin(); r != _plugins.end(); ++r) + { + names.push_back((*r).first); + } + return names; +} + PluginPtr Ice::PluginManagerI::getPlugin(const string& name) { diff --git a/cpp/src/Ice/PluginManagerI.h b/cpp/src/Ice/PluginManagerI.h index 659d435eb9a..65bd9134ab6 100644 --- a/cpp/src/Ice/PluginManagerI.h +++ b/cpp/src/Ice/PluginManagerI.h @@ -26,6 +26,7 @@ class PluginManagerI : public PluginManager, public IceUtil::Mutex public: virtual void initializePlugins(); + virtual StringSeq getPlugins(); virtual PluginPtr getPlugin(const std::string&); virtual void addPlugin(const std::string&, const PluginPtr&); virtual void destroy(); |