diff options
author | Mark Spruiell <mes@zeroc.com> | 2002-04-24 21:13:00 +0000 |
---|---|---|
committer | Mark Spruiell <mes@zeroc.com> | 2002-04-24 21:13:00 +0000 |
commit | 5409c1ecef0f226dedc77721c0d2fc8dfe9e85de (patch) | |
tree | 97ba75bc47a143726d6d8382be3a462e51716700 /cpp/src/Ice/PluginManagerI.h | |
parent | cleaning up sample impls (diff) | |
download | ice-5409c1ecef0f226dedc77721c0d2fc8dfe9e85de.tar.bz2 ice-5409c1ecef0f226dedc77721c0d2fc8dfe9e85de.tar.xz ice-5409c1ecef0f226dedc77721c0d2fc8dfe9e85de.zip |
merging from plugins branch
Diffstat (limited to 'cpp/src/Ice/PluginManagerI.h')
-rw-r--r-- | cpp/src/Ice/PluginManagerI.h | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/cpp/src/Ice/PluginManagerI.h b/cpp/src/Ice/PluginManagerI.h new file mode 100644 index 00000000000..60663ffdc38 --- /dev/null +++ b/cpp/src/Ice/PluginManagerI.h @@ -0,0 +1,55 @@ +// ********************************************************************** +// +// Copyright (c) 2002 +// MutableRealms, Inc. +// Huntsville, AL, USA +// +// All Rights Reserved +// +// ********************************************************************** + +#ifndef ICE_PLUGIN_MANAGER_I_H +#define ICE_PLUGIN_MANAGER_I_H + +#include <Ice/Plugin.h> +#include <Ice/InstanceF.h> +#include <Ice/CommunicatorF.h> +#include <Ice/DynamicLibraryF.h> +#include <Ice/BuiltinSequences.h> +#include <IceUtil/Mutex.h> +#include <map> + +namespace Ice +{ + +class PluginManagerI : public PluginManager, public IceUtil::Mutex +{ +public: + + virtual PluginPtr getPlugin(const std::string&); + + virtual void addPlugin(const std::string&, const PluginPtr&); + + virtual void destroy(); + + struct PluginInfo + { + PluginPtr plugin; + IceInternal::DynamicLibraryPtr library; + }; + +private: + + PluginManagerI(const IceInternal::InstancePtr&); + void loadPlugins(int&, char*[]); + friend class IceInternal::Instance; + + void loadPlugin(const std::string&, const std::string&, const StringSeq&); + + IceInternal::InstancePtr _instance; + std::map<std::string, PluginInfo> _plugins; +}; + +} + +#endif |