16#ifndef __IceGrid_PluginFacade_h__
17#define __IceGrid_PluginFacade_h__
44#ifndef ICE_IGNORE_VERSION
45# if ICE_INT_VERSION / 100 != 307
46# error Ice version mismatch!
48# if ICE_INT_VERSION % 100 >= 50
49# error Beta header file detected
51# if ICE_INT_VERSION % 100 < 11
52# error Ice patch level mismatch!
57# if defined(ICE_STATIC_LIBS)
59# elif defined(ICEGRID_API_EXPORTS)
60# define ICEGRID_API ICE_DECLSPEC_EXPORT
62# define ICEGRID_API ICE_DECLSPEC_IMPORT
66#ifdef ICE_CPP11_MAPPING
71class ReplicaGroupFilter;
73class RegistryPluginFacade;
89class ICE_CLASS(ICEGRID_API) ReplicaGroupFilter
105 virtual ::Ice::StringSeq filter(const ::std::string& replicaGroupId, const ::Ice::StringSeq& adapterIds, const ::std::shared_ptr<::Ice::Connection>& con, const ::Ice::Context& ctx) = 0;
118class ICE_CLASS(ICEGRID_API) TypeFilter
134 virtual ::Ice::ObjectProxySeq filter(const ::std::string& type, const ::Ice::ObjectProxySeq& proxies, const ::std::shared_ptr<::Ice::Connection>& con, const ::Ice::Context& ctx) = 0;
144class ICE_CLASS(ICEGRID_API) RegistryPluginFacade
157 virtual ::IceGrid::ApplicationInfo getApplicationInfo(const ::std::string& name)
const = 0;
165 virtual ::IceGrid::ServerInfo getServerInfo(const ::std::string&
id)
const = 0;
176 virtual ::std::string getAdapterServer(const ::std::string& adapterId)
const = 0;
187 virtual ::std::string getAdapterApplication(const ::std::string& adapterId)
const = 0;
198 virtual ::std::string getAdapterNode(const ::std::string& adapterId)
const = 0;
212 virtual ::IceGrid::AdapterInfoSeq getAdapterInfo(const ::std::string&
id)
const = 0;
221 virtual ::IceGrid::ObjectInfo getObjectInfo(const ::Ice::Identity&
id)
const = 0;
231 virtual ::IceGrid::NodeInfo getNodeInfo(const ::std::string& name)
const = 0;
241 virtual ::IceGrid::LoadInfo getNodeLoad(const ::std::string& name)
const = 0;
252 virtual ::std::string getPropertyForAdapter(const ::std::string& adapterId, const ::std::string& name)
const = 0;
262 virtual void addReplicaGroupFilter(const ::std::string&
id, const ::std::shared_ptr<ReplicaGroupFilter>& filter)
noexcept = 0;
270 virtual bool removeReplicaGroupFilter(const ::std::string&
id, const ::std::shared_ptr<ReplicaGroupFilter>& filter)
noexcept = 0;
277 virtual void addTypeFilter(const ::std::string& type, const ::std::shared_ptr<TypeFilter>& filter)
noexcept = 0;
285 virtual bool removeTypeFilter(const ::std::string& type, const ::std::shared_ptr<TypeFilter>& filter)
noexcept = 0;
320class ReplicaGroupFilter;
322ICEGRID_API ::Ice::LocalObject*
upCast(ReplicaGroupFilter*);
328ICEGRID_API ::Ice::LocalObject* upCast(
TypeFilter*);
372#ifdef ICE_CPP11_COMPILER
388 virtual ::Ice::StringSeq
filter(const ::std::string& replicaGroupId, const ::Ice::StringSeq& adapterIds, const ::Ice::ConnectionPtr& con, const ::Ice::Context& ctx) = 0;
397inline bool operator<(
const ReplicaGroupFilter& lhs,
const ReplicaGroupFilter& rhs)
421#ifdef ICE_CPP11_COMPILER
437 virtual ::Ice::ObjectProxySeq
filter(const ::std::string& type, const ::Ice::ObjectProxySeq& proxies, const ::Ice::ConnectionPtr& con, const ::Ice::Context& ctx) = 0;
446inline bool operator<(
const TypeFilter& lhs,
const TypeFilter& rhs)
467#ifdef ICE_CPP11_COMPILER
617inline bool operator<(
const RegistryPluginFacade& lhs,
const RegistryPluginFacade& rhs)
#define ICEGRID_API
Definition Descriptor.h:58
#define ICE_NOEXCEPT
Definition Config.h:128
#define ICE_MEMBER(API)
Definition Config.h:177
The RegistryPluginFacade is implemented by IceGrid and can be used by plugins and filter implementati...
Definition PluginFacade.h:460
virtual void addTypeFilter(const ::std::string &type, const TypeFilterPtr &filter)=0
Add a type filter.
virtual void addReplicaGroupFilter(const ::std::string &id, const ReplicaGroupFilterPtr &filter)=0
Add a replica group filter.
virtual ServerInfo getServerInfo(const ::std::string &id) const =0
Get the server information for the server with the given id.
virtual::std::string getAdapterApplication(const ::std::string &adapterId) const =0
Get the name of the application to which the given adapter belongs.
virtual bool removeTypeFilter(const ::std::string &type, const TypeFilterPtr &filter)=0
Remove a type filter.
virtual NodeInfo getNodeInfo(const ::std::string &name) const =0
Get the node information for the node with the given name.
virtual::std::string getPropertyForAdapter(const ::std::string &adapterId, const ::std::string &name) const =0
Get the property value for the given property and adapter.
virtual ApplicationInfo getApplicationInfo(const ::std::string &name) const =0
Get an application descriptor.
RegistryPluginFacadePtr PointerType
Definition PluginFacade.h:463
virtual ObjectInfo getObjectInfo(const ::Ice::Identity &id) const =0
Get the object info for the object with the given identity.
virtual LoadInfo getNodeLoad(const ::std::string &name) const =0
Get the load averages of the node.
virtual::std::string getAdapterNode(const ::std::string &adapterId) const =0
Get the name of the node to which the given adapter belongs.
virtual ~RegistryPluginFacade()
virtual AdapterInfoSeq getAdapterInfo(const ::std::string &id) const =0
Get the adapter information for the replica group or adapter with the given id.
virtual::std::string getAdapterServer(const ::std::string &adapterId) const =0
Get the ID of the server to which the given adapter belongs.
virtual bool removeReplicaGroupFilter(const ::std::string &id, const ReplicaGroupFilterPtr &filter)=0
Remove a replica group filter.
The ReplicaGroupFilter is used by IceGrid to filter adapters returned to the client when it resolves ...
Definition PluginFacade.h:365
ReplicaGroupFilterPtr PointerType
Definition PluginFacade.h:368
virtual ~ReplicaGroupFilter()
virtual::Ice::StringSeq filter(const ::std::string &replicaGroupId, const ::Ice::StringSeq &adapterIds, const ::Ice::ConnectionPtr &con, const ::Ice::Context &ctx)=0
Filter the given set of adapters.
The TypeFilter is used by IceGrid to filter well-known proxies returned to the client when it searche...
Definition PluginFacade.h:414
TypeFilterPtr PointerType
Definition PluginFacade.h:417
virtual::Ice::ObjectProxySeq filter(const ::std::string &type, const ::Ice::ObjectProxySeq &proxies, const ::Ice::ConnectionPtr &con, const ::Ice::Context &ctx)=0
Filter the given set of proxies.
Shared & operator=(const Shared &)
Definition Shared.h:94
Base class for local Slice classes and interfaces.
Definition LocalObject.h:25
::IceInternal::Handle< RegistryPluginFacade > RegistryPluginFacadePtr
Definition PluginFacade.h:336
::IceInternal::Handle< ReplicaGroupFilter > ReplicaGroupFilterPtr
Definition PluginFacade.h:324
::std::vector< AdapterInfo > AdapterInfoSeq
A sequence of adapter information structures.
Definition Admin.h:7518
::IceInternal::Handle< TypeFilter > TypeFilterPtr
Definition PluginFacade.h:330
IceUtil::Shared * upCast(::Ice::AsyncResult *)
Information about an IceGrid application.
Definition Admin.h:7832
Information about the load of a node.
Definition Admin.h:7812
Information about an IceGrid node.
Definition Admin.h:7557
Information about an Ice object.
Definition Admin.h:7348
Information about a server managed by an IceGrid node.
Definition Admin.h:7525