Ice 3.8
Slice API Reference
Loading...
Searching...
No Matches
Router.ice
1// Copyright (c) ZeroC, Inc.
2
3#pragma once
4
5[["cpp:dll-export:ICE_API"]]
6[["cpp:doxygen:include:Ice/Ice.h"]]
7[["cpp:header-ext:h"]]
8
9[["js:module:@zeroc/ice"]]
10
11#include "BuiltinSequences.ice"
12
13["java:identifier:com.zeroc.Ice"]
14module Ice
15{
16 /// Represents an intermediary object that routes requests and replies between clients and Ice objects that are not
17 /// directly reachable from these clients.
18 interface Router
19 {
20 /// Gets the router's client proxy, i.e. the proxy to use for forwarding requests from the client to the
21 /// router. If a null proxy is returned, the client will forward requests to the router's endpoints.
22 /// @param hasRoutingTable Indicates whether or not the router supports a routing table. If `true`, the Ice
23 /// runtime will call {@link addProxies} to populate the routing table. The Ice runtime assumes the router has
24 /// a routing table when @p hasRoutingTable is not set.
25 /// @return The router's client proxy.
26 /// @remark Introduced in Ice 3.7.
27 ["cpp:const"]
28 idempotent Object* getClientProxy(out optional(1) bool hasRoutingTable);
29
30 /// Gets the router's server proxy, i.e. the proxy to use for forwarding requests from the server to the
31 /// router. The Ice runtime uses the endpoints of this proxy as the published endpoints of bi-dir object
32 /// adapters.
33 /// @return The router's server proxy.
34 ["cpp:const"]
35 idempotent Object* getServerProxy();
36
37 /// Adds new proxy information to the router's routing table.
38 /// @param proxies The proxies to add. Adding a null proxy is an error.
39 /// @return Proxies discarded by the router. These proxies are all non-null.
41 }
42
43 /// Provides access to a {@link Router} object via a fixed identity.
44 /// A RouterFinder is always registered with identity `Ice/RouterFinder`. This allows clients to obtain the
45 /// associated Router proxy with just the endpoint information of the object. For example, you can use the
46 /// RouterFinder proxy `Ice/RouterFinder:tcp -h somehost -p 4061` to get the Router proxy
47 /// `MyGlacier2/Router:tcp -h somehost -p 4061`.
48 interface RouterFinder
49 {
50 /// Gets a proxy to the associated {@link Router}. The proxy might point to several replicas.
51 /// @return The router proxy. This proxy is never null.
53 }
54}
Router * getRouter()
Gets a proxy to the associated Router.
Provides access to a Router object via a fixed identity.
Definition Router.ice:49
idempotent Object * getClientProxy(out optional(1) bool hasRoutingTable)
Gets the router's client proxy, i.e.
idempotent ObjectProxySeq addProxies(ObjectProxySeq proxies)
Adds new proxy information to the router's routing table.
idempotent Object * getServerProxy()
Gets the router's server proxy, i.e.
Represents an intermediary object that routes requests and replies between clients and Ice objects th...
Definition Router.ice:19
sequence< Object > ObjectProxySeq
A sequence of object proxies.
The Ice RPC framework.