Ice 3.8
C++ API Reference
Loading...
Searching...
No Matches
Router.h
1// Copyright (c) ZeroC, Inc.
2
3// slice2cpp version 3.8.0-alpha.0
4// <auto-generated>Generated from Slice file 'Router.ice'.</auto-generated>
5// clang-format off
6
7#ifndef Ice_Router_h_
8#define Ice_Router_h_
9
11#include <Ice/Ice.h>
12#include "BuiltinSequences.h"
13
14#ifndef ICE_DISABLE_VERSION
15# if ICE_INT_VERSION != 30850
16# error Ice version mismatch: an exact match is required for beta generated code
17# endif
18#endif
19
20// NOLINTBEGIN(modernize-concat-nested-namespaces)
21
22namespace Ice
23{
24 class RouterPrx;
25
26 class RouterFinderPrx;
27}
28
29namespace Ice
30{
31 /// Represents an intermediary object that routes requests and replies between clients and Ice objects that are not
32 /// directly reachable from these clients.
33 /// @remarks The Slice compiler generated this proxy class from Slice interface `::Ice::Router`.
34 /// @headerfile Ice/Ice.h
35 class ICE_API RouterPrx : public Ice::Proxy<RouterPrx, Ice::ObjectPrx>
36 {
37 public:
38 /// Constructs a proxy from a Communicator and a proxy string.
39 /// @param communicator The communicator of the new proxy.
40 /// @param proxyString The proxy string to parse.
41 RouterPrx(const Ice::CommunicatorPtr& communicator, std::string_view proxyString) : Ice::ObjectPrx{communicator, proxyString} {} // NOLINT(modernize-use-equals-default)
42
43 /// Copy constructor. Constructs with a copy of the contents of @p other.
44 /// @param other The proxy to copy from.
45 RouterPrx(const RouterPrx& other) noexcept : Ice::ObjectPrx{other} {} // NOLINT(modernize-use-equals-default)
46
47 /// Move constructor. Constructs a proxy with the contents of @p other using move semantics.
48 /// @param other The proxy to move from.
49 RouterPrx(RouterPrx&& other) noexcept : Ice::ObjectPrx{std::move(other)} {} // NOLINT(modernize-use-equals-default)
50
51 ~RouterPrx() override;
52
53 /// Copy assignment operator. Replaces the contents of this proxy with a copy of the contents of @p rhs.
54 /// @param rhs The proxy to copy from.
55 /// @return A reference to this proxy.
56 RouterPrx& operator=(const RouterPrx& rhs) noexcept
57 {
58 if (this != &rhs)
59 {
61 }
62 return *this;
63 }
64
65 /// Move assignment operator. Replaces the contents of this proxy with the contents of @p rhs using move semantics.
66 /// @param rhs The proxy to move from.
67 RouterPrx& operator=(RouterPrx&& rhs) noexcept
68 {
69 if (this != &rhs)
70 {
71 Ice::ObjectPrx::operator=(std::move(rhs));
72 }
73 return *this;
74 }
75
76 /// Gets the router's client proxy, i.e. the proxy to use for forwarding requests from the client to the
77 /// router. If a null proxy is returned, the client will forward requests to the router's endpoints.
78 /// @param[out] hasRoutingTable Indicates whether or not the router supports a routing table. If `true`, the Ice
79 /// runtime will call ::Ice::RouterPrx::addProxies to populate the routing table. The Ice runtime assumes the router has
80 /// a routing table when @p hasRoutingTable is not set.
81 /// @param context The request context.
82 /// @return The router's client proxy.
83 /// @remarks Introduced in Ice 3.7.
84 std::optional<Ice::ObjectPrx> getClientProxy(std::optional<bool>& hasRoutingTable, const Ice::Context& context = Ice::noExplicitContext) const;
85
86 /// Gets the router's client proxy, i.e. the proxy to use for forwarding requests from the client to the
87 /// router. If a null proxy is returned, the client will forward requests to the router's endpoints.
88 /// @param context The request context.
89 /// @return A future that becomes available when the invocation completes. This future holds:
90 /// - `returnValue` The router's client proxy.
91 /// - `hasRoutingTable` Indicates whether or not the router supports a routing table. If `true`, the Ice
92 /// runtime will call ::Ice::RouterPrx::addProxies to populate the routing table. The Ice runtime assumes the router has
93 /// a routing table when @p hasRoutingTable is not set.
94 /// @remarks Introduced in Ice 3.7.
95 [[nodiscard]] std::future<std::tuple<std::optional<Ice::ObjectPrx>, std::optional<bool>>> getClientProxyAsync(const Ice::Context& context = Ice::noExplicitContext) const;
96
97 /// Gets the router's client proxy, i.e. the proxy to use for forwarding requests from the client to the
98 /// router. If a null proxy is returned, the client will forward requests to the router's endpoints.
99 /// @param response The response callback. It accepts:
100 /// - `returnValue` The router's client proxy.
101 /// - `hasRoutingTable` Indicates whether or not the router supports a routing table. If `true`, the Ice
102 /// runtime will call ::Ice::RouterPrx::addProxies to populate the routing table. The Ice runtime assumes the router has
103 /// a routing table when @p hasRoutingTable is not set.
104 /// @param exception The exception callback.
105 /// @param sent The sent callback.
106 /// @param context The request context.
107 /// @return A function that can be called to cancel the invocation locally.
108 /// @remarks Introduced in Ice 3.7.
109 // NOLINTNEXTLINE(modernize-use-nodiscard)
110 std::function<void()> getClientProxyAsync(std::function<void(std::optional<Ice::ObjectPrx>, std::optional<bool>)> response, std::function<void(std::exception_ptr)> exception = nullptr, std::function<void(bool)> sent = nullptr, const Ice::Context& context = Ice::noExplicitContext) const;
111
112 /// @private
113 void _iceI_getClientProxy(const std::shared_ptr<IceInternal::OutgoingAsyncT<std::tuple<std::optional<Ice::ObjectPrx>, std::optional<bool>>>>&, const Ice::Context&) const;
114
115 /// Gets the router's server proxy, i.e. the proxy to use for forwarding requests from the server to the
116 /// router. The Ice runtime uses the endpoints of this proxy as the published endpoints of bi-dir object
117 /// adapters.
118 /// @param context The request context.
119 /// @return The router's server proxy.
120 std::optional<Ice::ObjectPrx> getServerProxy(const Ice::Context& context = Ice::noExplicitContext) const; // NOLINT(modernize-use-nodiscard)
121
122 /// Gets the router's server proxy, i.e. the proxy to use for forwarding requests from the server to the
123 /// router. The Ice runtime uses the endpoints of this proxy as the published endpoints of bi-dir object
124 /// adapters.
125 /// @param context The request context.
126 /// @return A future that becomes available when the invocation completes. This future holds:
127 /// - The router's server proxy.
128 [[nodiscard]] std::future<std::optional<Ice::ObjectPrx>> getServerProxyAsync(const Ice::Context& context = Ice::noExplicitContext) const;
129
130 /// Gets the router's server proxy, i.e. the proxy to use for forwarding requests from the server to the
131 /// router. The Ice runtime uses the endpoints of this proxy as the published endpoints of bi-dir object
132 /// adapters.
133 /// @param response The response callback. It accepts:
134 /// - The router's server proxy.
135 /// @param exception The exception callback.
136 /// @param sent The sent callback.
137 /// @param context The request context.
138 /// @return A function that can be called to cancel the invocation locally.
139 // NOLINTNEXTLINE(modernize-use-nodiscard)
140 std::function<void()> getServerProxyAsync(std::function<void(std::optional<Ice::ObjectPrx>)> response, std::function<void(std::exception_ptr)> exception = nullptr, std::function<void(bool)> sent = nullptr, const Ice::Context& context = Ice::noExplicitContext) const;
141
142 /// @private
143 void _iceI_getServerProxy(const std::shared_ptr<IceInternal::OutgoingAsyncT<std::optional<Ice::ObjectPrx>>>&, const Ice::Context&) const;
144
145 /// Adds new proxy information to the router's routing table.
146 /// @param proxies The proxies to add. Adding a null proxy is an error.
147 /// @param context The request context.
148 /// @return Proxies discarded by the router. These proxies are all non-null.
149 ObjectProxySeq addProxies(const ObjectProxySeq& proxies, const Ice::Context& context = Ice::noExplicitContext) const; // NOLINT(modernize-use-nodiscard)
150
151 /// Adds new proxy information to the router's routing table.
152 /// @param proxies The proxies to add. Adding a null proxy is an error.
153 /// @param context The request context.
154 /// @return A future that becomes available when the invocation completes. This future holds:
155 /// - Proxies discarded by the router. These proxies are all non-null.
156 [[nodiscard]] std::future<ObjectProxySeq> addProxiesAsync(const ObjectProxySeq& proxies, const Ice::Context& context = Ice::noExplicitContext) const;
157
158 /// Adds new proxy information to the router's routing table.
159 /// @param proxies The proxies to add. Adding a null proxy is an error.
160 /// @param response The response callback. It accepts:
161 /// - Proxies discarded by the router. These proxies are all non-null.
162 /// @param exception The exception callback.
163 /// @param sent The sent callback.
164 /// @param context The request context.
165 /// @return A function that can be called to cancel the invocation locally.
166 // NOLINTNEXTLINE(modernize-use-nodiscard)
167 std::function<void()> addProxiesAsync(const ObjectProxySeq& proxies, std::function<void(::Ice::ObjectProxySeq)> response, std::function<void(std::exception_ptr)> exception = nullptr, std::function<void(bool)> sent = nullptr, const Ice::Context& context = Ice::noExplicitContext) const;
168
169 /// @private
170 void _iceI_addProxies(const std::shared_ptr<IceInternal::OutgoingAsyncT<ObjectProxySeq>>&, const ObjectProxySeq&, const Ice::Context&) const;
171
172 /// Gets the type ID of the associated Slice interface.
173 /// @return The string `"::Ice::Router"`.
174 static const char* ice_staticId() noexcept;
175
176 /// @private
177 static RouterPrx _fromReference(IceInternal::ReferencePtr ref) { return RouterPrx{std::move(ref)}; }
178
179 protected:
180 /// @private
181 RouterPrx() = default;
182
183 /// @private
184 explicit RouterPrx(IceInternal::ReferencePtr&& ref) : Ice::ObjectPrx{std::move(ref)}
185 {
186 }
187 };
188
189 /// Provides access to a RouterPrx object via a fixed identity.
190 /// A RouterFinder is always registered with identity `Ice/RouterFinder`. This allows clients to obtain the
191 /// associated Router proxy with just the endpoint information of the object. For example, you can use the
192 /// RouterFinder proxy `Ice/RouterFinder:tcp -h somehost -p 4061` to get the Router proxy
193 /// `MyGlacier2/Router:tcp -h somehost -p 4061`.
194 /// @remarks The Slice compiler generated this proxy class from Slice interface `::Ice::RouterFinder`.
195 /// @headerfile Ice/Ice.h
196 class ICE_API RouterFinderPrx : public Ice::Proxy<RouterFinderPrx, Ice::ObjectPrx>
197 {
198 public:
199 /// Constructs a proxy from a Communicator and a proxy string.
200 /// @param communicator The communicator of the new proxy.
201 /// @param proxyString The proxy string to parse.
202 RouterFinderPrx(const Ice::CommunicatorPtr& communicator, std::string_view proxyString) : Ice::ObjectPrx{communicator, proxyString} {} // NOLINT(modernize-use-equals-default)
203
204 /// Copy constructor. Constructs with a copy of the contents of @p other.
205 /// @param other The proxy to copy from.
206 RouterFinderPrx(const RouterFinderPrx& other) noexcept : Ice::ObjectPrx{other} {} // NOLINT(modernize-use-equals-default)
207
208 /// Move constructor. Constructs a proxy with the contents of @p other using move semantics.
209 /// @param other The proxy to move from.
210 RouterFinderPrx(RouterFinderPrx&& other) noexcept : Ice::ObjectPrx{std::move(other)} {} // NOLINT(modernize-use-equals-default)
211
212 ~RouterFinderPrx() override;
213
214 /// Copy assignment operator. Replaces the contents of this proxy with a copy of the contents of @p rhs.
215 /// @param rhs The proxy to copy from.
216 /// @return A reference to this proxy.
218 {
219 if (this != &rhs)
220 {
222 }
223 return *this;
224 }
225
226 /// Move assignment operator. Replaces the contents of this proxy with the contents of @p rhs using move semantics.
227 /// @param rhs The proxy to move from.
229 {
230 if (this != &rhs)
231 {
232 Ice::ObjectPrx::operator=(std::move(rhs));
233 }
234 return *this;
235 }
236
237 /// Gets a proxy to the associated ::Ice::RouterPrx. The proxy might point to several replicas.
238 /// @param context The request context.
239 /// @return The router proxy. This proxy is never null.
240 std::optional<RouterPrx> getRouter(const Ice::Context& context = Ice::noExplicitContext) const; // NOLINT(modernize-use-nodiscard)
241
242 /// Gets a proxy to the associated ::Ice::RouterPrx. The proxy might point to several replicas.
243 /// @param context The request context.
244 /// @return A future that becomes available when the invocation completes. This future holds:
245 /// - The router proxy. This proxy is never null.
246 [[nodiscard]] std::future<std::optional<RouterPrx>> getRouterAsync(const Ice::Context& context = Ice::noExplicitContext) const;
247
248 /// Gets a proxy to the associated ::Ice::RouterPrx. The proxy might point to several replicas.
249 /// @param response The response callback. It accepts:
250 /// - The router proxy. This proxy is never null.
251 /// @param exception The exception callback.
252 /// @param sent The sent callback.
253 /// @param context The request context.
254 /// @return A function that can be called to cancel the invocation locally.
255 // NOLINTNEXTLINE(modernize-use-nodiscard)
256 std::function<void()> getRouterAsync(std::function<void(std::optional<::Ice::RouterPrx>)> response, std::function<void(std::exception_ptr)> exception = nullptr, std::function<void(bool)> sent = nullptr, const Ice::Context& context = Ice::noExplicitContext) const;
257
258 /// @private
259 void _iceI_getRouter(const std::shared_ptr<IceInternal::OutgoingAsyncT<std::optional<RouterPrx>>>&, const Ice::Context&) const;
260
261 /// Gets the type ID of the associated Slice interface.
262 /// @return The string `"::Ice::RouterFinder"`.
263 static const char* ice_staticId() noexcept;
264
265 /// @private
266 static RouterFinderPrx _fromReference(IceInternal::ReferencePtr ref) { return RouterFinderPrx{std::move(ref)}; }
267
268 protected:
269 /// @private
270 RouterFinderPrx() = default;
271
272 /// @private
273 explicit RouterFinderPrx(IceInternal::ReferencePtr&& ref) : Ice::ObjectPrx{std::move(ref)}
274 {
275 }
276 };
277}
278
279namespace Ice
280{
281 /// Represents an intermediary object that routes requests and replies between clients and Ice objects that are not
282 /// directly reachable from these clients.
283 /// @remarks The Slice compiler generated this skeleton class from Slice interface `::Ice::Router`.
284 /// @headerfile Ice/Ice.h
285 class ICE_API Router : public virtual Ice::Object
286 {
287 public:
288 /// The associated proxy type.
290
291 /// Dispatches an incoming request to one of the member functions of this generated class, based on the operation name carried by the request.
292 /// @param request The incoming request.
293 /// @param sendResponse The callback to send the response.
294 void dispatch(IncomingRequest& request, std::function<void(OutgoingResponse)> sendResponse) override;
295
296 [[nodiscard]] std::vector<std::string> ice_ids(const Ice::Current& current) const override;
297
298 [[nodiscard]] std::string ice_id(const Ice::Current& current) const override;
299
300 /// Gets the router's client proxy, i.e. the proxy to use for forwarding requests from the client to the
301 /// router. If a null proxy is returned, the client will forward requests to the router's endpoints.
302 /// @param[out] hasRoutingTable Indicates whether or not the router supports a routing table. If `true`, the Ice
303 /// runtime will call ::Ice::RouterPrx::addProxies to populate the routing table. The Ice runtime assumes the router has
304 /// a routing table when @p hasRoutingTable is not set.
305 /// @param current The Current object of the incoming request.
306 /// @return The router's client proxy.
307 /// @remarks Introduced in Ice 3.7.
308 virtual std::optional<Ice::ObjectPrx> getClientProxy(std::optional<bool>& hasRoutingTable, const Ice::Current& current) const = 0;
309
310 /// @private
311 void _iceD_getClientProxy(Ice::IncomingRequest&, std::function<void(Ice::OutgoingResponse)>) const;
312
313 /// Gets the router's server proxy, i.e. the proxy to use for forwarding requests from the server to the
314 /// router. The Ice runtime uses the endpoints of this proxy as the published endpoints of bi-dir object
315 /// adapters.
316 /// @param current The Current object of the incoming request.
317 /// @return The router's server proxy.
318 [[nodiscard]] virtual std::optional<Ice::ObjectPrx> getServerProxy(const Ice::Current& current) const = 0;
319
320 /// @private
321 void _iceD_getServerProxy(Ice::IncomingRequest&, std::function<void(Ice::OutgoingResponse)>) const;
322
323 /// Adds new proxy information to the router's routing table.
324 /// @param proxies The proxies to add. Adding a null proxy is an error.
325 /// @param current The Current object of the incoming request.
326 /// @return Proxies discarded by the router. These proxies are all non-null.
327 virtual ObjectProxySeq addProxies(ObjectProxySeq proxies, const Ice::Current& current) = 0;
328
329 /// @private
330 void _iceD_addProxies(Ice::IncomingRequest&, std::function<void(Ice::OutgoingResponse)>);
331
332 /// Gets the type ID of the associated Slice interface.
333 /// @return The string `"::Ice::Router"`.
334 static const char* ice_staticId() noexcept;
335 };
336
337 /// A shared pointer to a Router.
338 using RouterPtr = std::shared_ptr<Router>;
339
340 /// Provides access to a RouterPrx object via a fixed identity.
341 /// A RouterFinder is always registered with identity `Ice/RouterFinder`. This allows clients to obtain the
342 /// associated Router proxy with just the endpoint information of the object. For example, you can use the
343 /// RouterFinder proxy `Ice/RouterFinder:tcp -h somehost -p 4061` to get the Router proxy
344 /// `MyGlacier2/Router:tcp -h somehost -p 4061`.
345 /// @remarks The Slice compiler generated this skeleton class from Slice interface `::Ice::RouterFinder`.
346 /// @headerfile Ice/Ice.h
347 class ICE_API RouterFinder : public virtual Ice::Object
348 {
349 public:
350 /// The associated proxy type.
352
353 /// Dispatches an incoming request to one of the member functions of this generated class, based on the operation name carried by the request.
354 /// @param request The incoming request.
355 /// @param sendResponse The callback to send the response.
356 void dispatch(IncomingRequest& request, std::function<void(OutgoingResponse)> sendResponse) override;
357
358 [[nodiscard]] std::vector<std::string> ice_ids(const Ice::Current& current) const override;
359
360 [[nodiscard]] std::string ice_id(const Ice::Current& current) const override;
361
362 /// Gets a proxy to the associated ::Ice::RouterPrx. The proxy might point to several replicas.
363 /// @param current The Current object of the incoming request.
364 /// @return The router proxy. This proxy is never null.
365 virtual std::optional<RouterPrx> getRouter(const Ice::Current& current) = 0;
366
367 /// @private
368 void _iceD_getRouter(Ice::IncomingRequest&, std::function<void(Ice::OutgoingResponse)>);
369
370 /// Gets the type ID of the associated Slice interface.
371 /// @return The string `"::Ice::RouterFinder"`.
372 static const char* ice_staticId() noexcept;
373 };
374
375 /// A shared pointer to a RouterFinder.
376 using RouterFinderPtr = std::shared_ptr<RouterFinder>;
377}
378
379namespace Ice
380{
381 /// Represents an intermediary object that routes requests and replies between clients and Ice objects that are not
382 /// directly reachable from these clients.
383 /// @remarks The Slice compiler generated this skeleton class from Slice interface `::Ice::Router`.
384 /// @headerfile Ice/Ice.h
385 class ICE_API AsyncRouter : public virtual Ice::Object
386 {
387 public:
388 /// The associated proxy type.
390
391 /// Dispatches an incoming request to one of the member functions of this generated class, based on the operation name carried by the request.
392 /// @param request The incoming request.
393 /// @param sendResponse The callback to send the response.
394 void dispatch(IncomingRequest& request, std::function<void(OutgoingResponse)> sendResponse) override;
395
396 [[nodiscard]] std::vector<std::string> ice_ids(const Ice::Current& current) const override;
397
398 [[nodiscard]] std::string ice_id(const Ice::Current& current) const override;
399
400 /// Gets the router's client proxy, i.e. the proxy to use for forwarding requests from the client to the
401 /// router. If a null proxy is returned, the client will forward requests to the router's endpoints.
402 /// @param response The response callback. It accepts:
403 /// - `returnValue` The router's client proxy.
404 /// - `hasRoutingTable` Indicates whether or not the router supports a routing table. If `true`, the Ice
405 /// runtime will call ::Ice::RouterPrx::addProxies to populate the routing table. The Ice runtime assumes the router has
406 /// a routing table when @p hasRoutingTable is not set.
407 /// @param exception The exception callback.
408 /// @param current The Current object of the incoming request.
409 /// @remarks Introduced in Ice 3.7.
410 virtual void getClientProxyAsync(std::function<void(const std::optional<Ice::ObjectPrx>& returnValue, std::optional<bool> hasRoutingTable)> response, std::function<void(std::exception_ptr)> exception, const Ice::Current& current) const = 0;
411
412 /// @private
413 void _iceD_getClientProxy(Ice::IncomingRequest&, std::function<void(Ice::OutgoingResponse)>) const;
414
415 /// Gets the router's server proxy, i.e. the proxy to use for forwarding requests from the server to the
416 /// router. The Ice runtime uses the endpoints of this proxy as the published endpoints of bi-dir object
417 /// adapters.
418 /// @param response The response callback. It accepts:
419 /// - The router's server proxy.
420 /// @param exception The exception callback.
421 /// @param current The Current object of the incoming request.
422 virtual void getServerProxyAsync(std::function<void(const std::optional<Ice::ObjectPrx>& returnValue)> response, std::function<void(std::exception_ptr)> exception, const Ice::Current& current) const = 0;
423
424 /// @private
425 void _iceD_getServerProxy(Ice::IncomingRequest&, std::function<void(Ice::OutgoingResponse)>) const;
426
427 /// Adds new proxy information to the router's routing table.
428 /// @param proxies The proxies to add. Adding a null proxy is an error.
429 /// @param response The response callback. It accepts:
430 /// - Proxies discarded by the router. These proxies are all non-null.
431 /// @param exception The exception callback.
432 /// @param current The Current object of the incoming request.
433 virtual void addProxiesAsync(ObjectProxySeq proxies, std::function<void(const ObjectProxySeq& returnValue)> response, std::function<void(std::exception_ptr)> exception, const Ice::Current& current) = 0;
434
435 /// @private
436 void _iceD_addProxies(Ice::IncomingRequest&, std::function<void(Ice::OutgoingResponse)>);
437
438 /// Gets the type ID of the associated Slice interface.
439 /// @return The string `"::Ice::Router"`.
440 static const char* ice_staticId() noexcept;
441 };
442
443 /// A shared pointer to an AsyncRouter.
444 using AsyncRouterPtr = std::shared_ptr<AsyncRouter>;
445
446 /// Provides access to a RouterPrx object via a fixed identity.
447 /// A RouterFinder is always registered with identity `Ice/RouterFinder`. This allows clients to obtain the
448 /// associated Router proxy with just the endpoint information of the object. For example, you can use the
449 /// RouterFinder proxy `Ice/RouterFinder:tcp -h somehost -p 4061` to get the Router proxy
450 /// `MyGlacier2/Router:tcp -h somehost -p 4061`.
451 /// @remarks The Slice compiler generated this skeleton class from Slice interface `::Ice::RouterFinder`.
452 /// @headerfile Ice/Ice.h
453 class ICE_API AsyncRouterFinder : public virtual Ice::Object
454 {
455 public:
456 /// The associated proxy type.
458
459 /// Dispatches an incoming request to one of the member functions of this generated class, based on the operation name carried by the request.
460 /// @param request The incoming request.
461 /// @param sendResponse The callback to send the response.
462 void dispatch(IncomingRequest& request, std::function<void(OutgoingResponse)> sendResponse) override;
463
464 [[nodiscard]] std::vector<std::string> ice_ids(const Ice::Current& current) const override;
465
466 [[nodiscard]] std::string ice_id(const Ice::Current& current) const override;
467
468 /// Gets a proxy to the associated ::Ice::RouterPrx. The proxy might point to several replicas.
469 /// @param response The response callback. It accepts:
470 /// - The router proxy. This proxy is never null.
471 /// @param exception The exception callback.
472 /// @param current The Current object of the incoming request.
473 virtual void getRouterAsync(std::function<void(const std::optional<RouterPrx>& returnValue)> response, std::function<void(std::exception_ptr)> exception, const Ice::Current& current) = 0;
474
475 /// @private
476 void _iceD_getRouter(Ice::IncomingRequest&, std::function<void(Ice::OutgoingResponse)>);
477
478 /// Gets the type ID of the associated Slice interface.
479 /// @return The string `"::Ice::RouterFinder"`.
480 static const char* ice_staticId() noexcept;
481 };
482
483 /// A shared pointer to an AsyncRouterFinder.
484 using AsyncRouterFinderPtr = std::shared_ptr<AsyncRouterFinder>;
485}
486
487// NOLINTEND(modernize-concat-nested-namespaces)
488
489#include <Ice/PopDisableWarnings.h>
490#endif
void dispatch(IncomingRequest &request, std::function< void(OutgoingResponse)> sendResponse) override
Dispatches an incoming request to one of the member functions of this generated class,...
static const char * ice_staticId() noexcept
Gets the type ID of the associated Slice interface.
std::string ice_id(const Ice::Current &current) const override
Gets the type ID of the most-derived Slice interface supported by this object.
std::vector< std::string > ice_ids(const Ice::Current &current) const override
Gets the Slice interfaces supported by this object as a list of Slice type IDs.
RouterFinderPrx ProxyType
The associated proxy type.
Definition Router.h:457
virtual void getRouterAsync(std::function< void(const std::optional< RouterPrx > &returnValue)> response, std::function< void(std::exception_ptr)> exception, const Ice::Current &current)=0
Gets a proxy to the associated Ice::RouterPrx.
Provides access to a RouterPrx object via a fixed identity.
Definition Router.h:454
static const char * ice_staticId() noexcept
Gets the type ID of the associated Slice interface.
virtual void addProxiesAsync(ObjectProxySeq proxies, std::function< void(const ObjectProxySeq &returnValue)> response, std::function< void(std::exception_ptr)> exception, const Ice::Current &current)=0
Adds new proxy information to the router's routing table.
virtual void getClientProxyAsync(std::function< void(const std::optional< Ice::ObjectPrx > &returnValue, std::optional< bool > hasRoutingTable)> response, std::function< void(std::exception_ptr)> exception, const Ice::Current &current) const =0
Gets the router's client proxy, i.e.
std::string ice_id(const Ice::Current &current) const override
Gets the type ID of the most-derived Slice interface supported by this object.
void dispatch(IncomingRequest &request, std::function< void(OutgoingResponse)> sendResponse) override
Dispatches an incoming request to one of the member functions of this generated class,...
RouterPrx ProxyType
The associated proxy type.
Definition Router.h:389
virtual void getServerProxyAsync(std::function< void(const std::optional< Ice::ObjectPrx > &returnValue)> response, std::function< void(std::exception_ptr)> exception, const Ice::Current &current) const =0
Gets the router's server proxy, i.e.
std::vector< std::string > ice_ids(const Ice::Current &current) const override
Gets the Slice interfaces supported by this object as a list of Slice type IDs.
Represents an intermediary object that routes requests and replies between clients and Ice objects th...
Definition Router.h:386
Represents a request received by a connection.
ObjectPrx & operator=(const ObjectPrx &rhs) noexcept=default
Copy assignment operator.
The base class for all Ice proxies.
Definition Proxy.h:232
Object() noexcept=default
Default constructor.
The base class for servants.
Definition Object.h:21
Represents the response to an incoming request.
Provides typed proxy functions.
Definition Proxy.h:45
static const char * ice_staticId() noexcept
Gets the type ID of the associated Slice interface.
RouterFinderPrx(const Ice::CommunicatorPtr &communicator, std::string_view proxyString)
Constructs a proxy from a Communicator and a proxy string.
Definition Router.h:202
RouterFinderPrx(const RouterFinderPrx &other) noexcept
Copy constructor.
Definition Router.h:206
std::future< std::optional< RouterPrx > > getRouterAsync(const Ice::Context &context=Ice::noExplicitContext) const
Gets a proxy to the associated Ice::RouterPrx.
RouterFinderPrx & operator=(const RouterFinderPrx &rhs) noexcept
Copy assignment operator.
Definition Router.h:217
std::function< void()> getRouterAsync(std::function< void(std::optional<::Ice::RouterPrx >)> response, std::function< void(std::exception_ptr)> exception=nullptr, std::function< void(bool)> sent=nullptr, const Ice::Context &context=Ice::noExplicitContext) const
Gets a proxy to the associated Ice::RouterPrx.
RouterFinderPrx(RouterFinderPrx &&other) noexcept
Move constructor.
Definition Router.h:210
RouterFinderPrx & operator=(RouterFinderPrx &&rhs) noexcept
Move assignment operator.
Definition Router.h:228
std::optional< RouterPrx > getRouter(const Ice::Context &context=Ice::noExplicitContext) const
Gets a proxy to the associated Ice::RouterPrx.
Provides access to a RouterPrx object via a fixed identity.
Definition Router.h:197
std::vector< std::string > ice_ids(const Ice::Current &current) const override
Gets the Slice interfaces supported by this object as a list of Slice type IDs.
RouterFinderPrx ProxyType
The associated proxy type.
Definition Router.h:351
virtual std::optional< RouterPrx > getRouter(const Ice::Current &current)=0
Gets a proxy to the associated Ice::RouterPrx.
static const char * ice_staticId() noexcept
Gets the type ID of the associated Slice interface.
void dispatch(IncomingRequest &request, std::function< void(OutgoingResponse)> sendResponse) override
Dispatches an incoming request to one of the member functions of this generated class,...
std::string ice_id(const Ice::Current &current) const override
Gets the type ID of the most-derived Slice interface supported by this object.
Provides access to a RouterPrx object via a fixed identity.
Definition Router.h:348
static const char * ice_staticId() noexcept
Gets the type ID of the associated Slice interface.
std::future< ObjectProxySeq > addProxiesAsync(const ObjectProxySeq &proxies, const Ice::Context &context=Ice::noExplicitContext) const
Adds new proxy information to the router's routing table.
std::optional< Ice::ObjectPrx > getServerProxy(const Ice::Context &context=Ice::noExplicitContext) const
Gets the router's server proxy, i.e.
std::future< std::tuple< std::optional< Ice::ObjectPrx >, std::optional< bool > > > getClientProxyAsync(const Ice::Context &context=Ice::noExplicitContext) const
Gets the router's client proxy, i.e.
std::function< void()> getClientProxyAsync(std::function< void(std::optional< Ice::ObjectPrx >, std::optional< bool >)> response, std::function< void(std::exception_ptr)> exception=nullptr, std::function< void(bool)> sent=nullptr, const Ice::Context &context=Ice::noExplicitContext) const
Gets the router's client proxy, i.e.
RouterPrx(const Ice::CommunicatorPtr &communicator, std::string_view proxyString)
Constructs a proxy from a Communicator and a proxy string.
Definition Router.h:41
RouterPrx & operator=(RouterPrx &&rhs) noexcept
Move assignment operator.
Definition Router.h:67
std::optional< Ice::ObjectPrx > getClientProxy(std::optional< bool > &hasRoutingTable, const Ice::Context &context=Ice::noExplicitContext) const
Gets the router's client proxy, i.e.
std::future< std::optional< Ice::ObjectPrx > > getServerProxyAsync(const Ice::Context &context=Ice::noExplicitContext) const
Gets the router's server proxy, i.e.
std::function< void()> addProxiesAsync(const ObjectProxySeq &proxies, std::function< void(::Ice::ObjectProxySeq)> response, std::function< void(std::exception_ptr)> exception=nullptr, std::function< void(bool)> sent=nullptr, const Ice::Context &context=Ice::noExplicitContext) const
Adds new proxy information to the router's routing table.
RouterPrx(RouterPrx &&other) noexcept
Move constructor.
Definition Router.h:49
ObjectProxySeq addProxies(const ObjectProxySeq &proxies, const Ice::Context &context=Ice::noExplicitContext) const
Adds new proxy information to the router's routing table.
std::function< void()> getServerProxyAsync(std::function< void(std::optional< Ice::ObjectPrx >)> response, std::function< void(std::exception_ptr)> exception=nullptr, std::function< void(bool)> sent=nullptr, const Ice::Context &context=Ice::noExplicitContext) const
Gets the router's server proxy, i.e.
RouterPrx & operator=(const RouterPrx &rhs) noexcept
Copy assignment operator.
Definition Router.h:56
RouterPrx(const RouterPrx &other) noexcept
Copy constructor.
Definition Router.h:45
Represents an intermediary object that routes requests and replies between clients and Ice objects th...
Definition Router.h:36
RouterPrx ProxyType
The associated proxy type.
Definition Router.h:289
std::vector< std::string > ice_ids(const Ice::Current &current) const override
Gets the Slice interfaces supported by this object as a list of Slice type IDs.
virtual std::optional< Ice::ObjectPrx > getClientProxy(std::optional< bool > &hasRoutingTable, const Ice::Current &current) const =0
Gets the router's client proxy, i.e.
static const char * ice_staticId() noexcept
Gets the type ID of the associated Slice interface.
std::string ice_id(const Ice::Current &current) const override
Gets the type ID of the most-derived Slice interface supported by this object.
virtual ObjectProxySeq addProxies(ObjectProxySeq proxies, const Ice::Current &current)=0
Adds new proxy information to the router's routing table.
virtual std::optional< Ice::ObjectPrx > getServerProxy(const Ice::Current &current) const =0
Gets the router's server proxy, i.e.
void dispatch(IncomingRequest &request, std::function< void(OutgoingResponse)> sendResponse) override
Dispatches an incoming request to one of the member functions of this generated class,...
Represents an intermediary object that routes requests and replies between clients and Ice objects th...
Definition Router.h:286
std::shared_ptr< Communicator > CommunicatorPtr
A shared pointer to a Communicator.
const Context noExplicitContext
Marker value used to indicate that no explicit request context was passed to a proxy invocation.
std::shared_ptr< RouterFinder > RouterFinderPtr
A shared pointer to a RouterFinder.
Definition Router.h:376
std::shared_ptr< Router > RouterPtr
A shared pointer to a Router.
Definition Router.h:338
std::vector< std::optional< Ice::ObjectPrx > > ObjectProxySeq
A sequence of object proxies.
std::shared_ptr< AsyncRouterFinder > AsyncRouterFinderPtr
A shared pointer to an AsyncRouterFinder.
Definition Router.h:484
std::map< std::string, std::string, std::less<> > Context
Represents additional information carried by an Ice request.
Definition Context.h:28
std::shared_ptr< AsyncRouter > AsyncRouterPtr
A shared pointer to an AsyncRouter.
Definition Router.h:444
The Ice RPC framework.
Definition SampleEvent.h:60
Provides information about an incoming request being dispatched.
Definition Current.h:18