16#ifndef __Ice_Plugin_h__
17#define __Ice_Plugin_h__
33#ifndef ICE_IGNORE_VERSION
34# if ICE_INT_VERSION / 100 != 307
35# error Ice version mismatch!
37# if ICE_INT_VERSION % 100 >= 50
38# error Beta header file detected
40# if ICE_INT_VERSION % 100 < 11
41# error Ice patch level mismatch!
46# if defined(ICE_STATIC_LIBS)
48# elif defined(ICE_API_EXPORTS)
49# define ICE_API ICE_DECLSPEC_EXPORT
51# define ICE_API ICE_DECLSPEC_IMPORT
55#ifdef ICE_CPP11_MAPPING
77class ICE_CLASS(ICE_API) Plugin
91 virtual void destroy() = 0;
99class ICE_CLASS(ICE_API) PluginManager
115 virtual void initializePlugins() = 0;
122 virtual ::Ice::StringSeq getPlugins() noexcept = 0;
130 virtual ::std::shared_ptr<::Ice::Plugin> getPlugin(const ::std::
string& name) = 0;
138 virtual
void addPlugin(const ::std::
string& name, const ::std::shared_ptr<Plugin>& pi) = 0;
143 virtual
void destroy() noexcept = 0;
159using PluginPtr = ::std::shared_ptr<Plugin>;
205#ifdef ICE_CPP11_COMPILER
223inline bool operator==(
const Plugin& lhs,
const Plugin& rhs)
228inline bool operator<(
const Plugin& lhs,
const Plugin& rhs)
230 return static_cast<const LocalObject&
>(lhs) <
static_cast<const LocalObject&
>(rhs);
247#ifdef ICE_CPP11_COMPILER
#define ICE_API
Definition Config.h:197
#define ICE_NOEXCEPT
Definition Config.h:128
#define ICE_MEMBER(API)
Definition Config.h:177
Shared & operator=(const Shared &)
Definition Shared.h:94
Base class for local Slice classes and interfaces.
Definition LocalObject.h:25
Each communicator has a plug-in manager to administer the set of plug-ins.
Definition Plugin.h:240
virtual StringSeq getPlugins()=0
Get a list of plugins installed.
virtual void addPlugin(const ::std::string &name, const PluginPtr &pi)=0
Install a new plug-in.
virtual void initializePlugins()=0
Initialize the configured plug-ins.
virtual void destroy()=0
Called when the communicator is being destroyed.
PluginManagerPtr PointerType
Definition Plugin.h:243
virtual PluginPtr getPlugin(const ::std::string &name)=0
Obtain a plug-in by name.
A communicator plug-in.
Definition Plugin.h:198
virtual void destroy()=0
Called when the communicator is being destroyed.
PluginPtr PointerType
Definition Plugin.h:201
virtual void initialize()=0
Perform any necessary initialization steps.
Definition BuiltinSequences.h:113
::std::vector< ::std::string > StringSeq
A sequence of strings.
Definition BuiltinSequences.h:153
CommunicatorPtr initialize(int &argc, const char *argv[], const InitializationData &initData=InitializationData(), int version=30711)
Initializes a new communicator.
::IceInternal::Handle< PluginManager > PluginManagerPtr
Definition Plugin.h:181
IceUtil::Shared * upCast(::Ice::AsyncResult *)
::IceInternal::Handle< Plugin > PluginPtr
Definition Plugin.h:175