Ice 3.7 C++11 API Reference
Classes | Public Types | Public Member Functions | Static Public Member Functions | List of all members
Ice::Router Class Referenceabstract

The Ice router interface. More...

#include <Ice/Ice.h>

Inheritance diagram for Ice::Router:
Inheritance graph
[legend]
Collaboration diagram for Ice::Router:
Collaboration graph
[legend]

Classes

struct  GetClientProxyResult
 Encapsulates the results of a call to getClientProxy. More...
 

Public Types

using ProxyType = RouterPrx
 

Public Member Functions

virtual ObjectProxySeq addProxies (ObjectProxySeq proxies, const Current &current)=0
 Add new proxy information to the router's routing table. More...
 
virtual ::std::shared_ptr< ObjectPrxgetClientProxy (Ice::optional< bool > &hasRoutingTable, const Current &current) const =0
 Get the router's client proxy, i.e., the proxy to use for forwarding requests from the client to the router. More...
 
virtual ::std::shared_ptr< ObjectPrxgetServerProxy (const Current &current) const =0
 Get the router's server proxy, i.e., the proxy to use for forwarding requests from the server to the router. More...
 
virtual ::std::string ice_id (const Current &current) const override
 Obtains a Slice type ID representing the most-derived interface supported by this object. More...
 
virtual ::std::vector<::std::string > ice_ids (const Current &current) const override
 Obtains a list of the Slice type IDs representing the interfaces supported by this object. More...
 
virtual bool ice_isA (::std::string id, const Current &current) const override
 Determines whether this object supports an interface with the given Slice type ID. More...
 
- Public Member Functions inherited from Ice::Object
virtual bool ice_dispatch (Ice::Request &request, std::function< bool()> response=nullptr, std::function< bool(std::exception_ptr)> error=nullptr)
 Dispatches an invocation to a servant. More...
 
virtual bool ice_isA (std::string s, const Current &current) const
 Tests whether this object supports a specific Slice interface. More...
 
virtual void ice_ping (const Current &current) const
 Tests whether this object can be reached. More...
 
virtual ~Object ()=default
 

Static Public Member Functions

static const ::std::string & ice_staticId ()
 Obtains the Slice type ID corresponding to this class. More...
 
- Static Public Member Functions inherited from Ice::Object
static const std::string & ice_staticId ()
 Obtains the Slice type ID of this type. More...
 

Detailed Description

The Ice router interface.

Routers can be set either globally with Communicator#setDefaultRouter, or with ice_router on specific proxies.

Member Typedef Documentation

◆ ProxyType

Member Function Documentation

◆ addProxies()

virtual ObjectProxySeq Ice::Router::addProxies ( ObjectProxySeq  proxies,
const Current current 
)
pure virtual

Add new proxy information to the router's routing table.

Parameters
proxiesThe proxies to add.
currentThe Current object for the invocation.
Returns
Proxies discarded by the router.

◆ getClientProxy()

virtual ::std::shared_ptr<ObjectPrx> Ice::Router::getClientProxy ( Ice::optional< bool > &  hasRoutingTable,
const Current current 
) const
pure virtual

Get the router's client proxy, i.e., the proxy to use for forwarding requests from the client to the router.

If a null proxy is returned, the client will forward requests to the router's endpoints.

Parameters
hasRoutingTableIndicates whether or not the router supports a routing table. If it is supported, the Ice runtime will call addProxies to populate the routing table. This out parameter is only supported starting with Ice 3.7. The Ice runtime assumes the router has a routing table if the optional is not set.
currentThe Current object for the invocation.
Returns
The router's client proxy.

◆ getServerProxy()

virtual ::std::shared_ptr<ObjectPrx> Ice::Router::getServerProxy ( const Current current) const
pure virtual

Get the router's server proxy, i.e., the proxy to use for forwarding requests from the server to the router.

Parameters
currentThe Current object for the invocation.
Returns
The router's server proxy.

◆ ice_id()

virtual ::std::string Ice::Router::ice_id ( const Current current) const
overridevirtual

Obtains a Slice type ID representing the most-derived interface supported by this object.

Parameters
currentThe Current object for the invocation.
Returns
A fully-scoped type ID.

Reimplemented from Ice::Object.

◆ ice_ids()

virtual ::std::vector<::std::string> Ice::Router::ice_ids ( const Current current) const
overridevirtual

Obtains a list of the Slice type IDs representing the interfaces supported by this object.

Parameters
currentThe Current object for the invocation.
Returns
A list of fully-scoped type IDs.

Reimplemented from Ice::Object.

◆ ice_isA()

virtual bool Ice::Router::ice_isA ( ::std::string  id,
const Current current 
) const
overridevirtual

Determines whether this object supports an interface with the given Slice type ID.

Parameters
idThe fully-scoped Slice type ID.
currentThe Current object for the invocation.
Returns
True if this object supports the interface, false, otherwise.

◆ ice_staticId()

static const ::std::string& Ice::Router::ice_staticId ( )
static

Obtains the Slice type ID corresponding to this class.

Returns
A fully-scoped type ID.

The documentation for this class was generated from the following file: