Ice 3.7 C++98 API Reference
Loading...
Searching...
No Matches
Proxy.h
Go to the documentation of this file.
1//
2// Copyright (c) ZeroC, Inc. All rights reserved.
3//
4
5#ifndef ICE_PROXY_H
6#define ICE_PROXY_H
7
8#include <IceUtil/Shared.h>
9#include <IceUtil/Mutex.h>
10#include <Ice/ProxyF.h>
11#include <Ice/ProxyFactoryF.h>
12#include <Ice/ConnectionIF.h>
13#include <Ice/RequestHandlerF.h>
14#include <Ice/EndpointF.h>
15#include <Ice/EndpointTypes.h>
16#include <Ice/Object.h>
17#include <Ice/ObjectAdapterF.h>
18#include <Ice/ReferenceF.h>
20#include <Ice/AsyncResult.h>
21//#include <Ice/RouterF.h> // Can't include RouterF.h here, otherwise we have cyclic includes
22//#include <Ice/LocatorF.h> // Can't include LocatorF.h here, otherwise we have cyclic includes
23#include <Ice/Current.h>
24#include <Ice/CommunicatorF.h>
25#include <Ice/OutgoingAsync.h>
26#include <Ice/LocalException.h>
27#include <iosfwd>
28
29namespace Ice
30{
31
34
35}
36
37#if defined(_MSC_VER) && (_MSC_VER <= 1600)
38//
39// COMPILERFIX v90 and v100 get confused with namespaces and complains that
40// ::Ice::noExplicitContext isn't defined in IceProxy namespace.
41//
42namespace IceProxy
43{
44
45namespace Ice
46{
47
49ICE_API extern const ::Ice::Context noExplicitContext;
50
51}
52
53}
54#endif
55
56namespace IceInternal
57{
58
59//
60// Class for handling the proxy's begin_ice_flushBatchRequest request.
61//
62class ICE_API ProxyFlushBatchAsync : public ProxyOutgoingAsyncBase
63{
64public:
65
66 ProxyFlushBatchAsync(const Ice::ObjectPrxPtr&);
67
68 virtual AsyncStatus invokeRemote(const Ice::ConnectionIPtr&, bool, bool);
69 virtual AsyncStatus invokeCollocated(CollocatedRequestHandler*);
70
71 void invoke(const std::string&);
72
73private:
74
75 int _batchRequestNum;
76};
77typedef IceUtil::Handle<ProxyFlushBatchAsync> ProxyFlushBatchAsyncPtr;
78
79//
80// Class for handling the proxy's begin_ice_getConnection request.
81//
82class ICE_API ProxyGetConnection : public ProxyOutgoingAsyncBase
83{
84public:
85
86 ProxyGetConnection(const Ice::ObjectPrxPtr&);
87
88 virtual AsyncStatus invokeRemote(const Ice::ConnectionIPtr&, bool, bool);
89 virtual AsyncStatus invokeCollocated(CollocatedRequestHandler*);
90
91 virtual Ice::ConnectionPtr getConnection() const;
92
93 void invoke(const std::string&);
94};
95typedef IceUtil::Handle<ProxyGetConnection> ProxyGetConnectionPtr;
96
97}
98
99#ifdef ICE_CPP11_MAPPING // C++11 mapping
100
101namespace IceInternal
102{
103
104template<typename P>
105::std::shared_ptr<P> createProxy()
106{
107 return ::std::shared_ptr<P>(new P());
108}
109
110inline ::std::pair<const Ice::Byte*, const Ice::Byte*>
111makePair(const Ice::ByteSeq& seq)
112{
113 if(seq.empty())
114 {
115 return { nullptr, nullptr };
116 }
117 else
118 {
119 return { seq.data(), seq.data() + seq.size() };
120 }
121}
122
123template<typename R>
124class InvokeOutgoingAsyncT : public OutgoingAsync
125{
126public:
127
128 using OutgoingAsync::OutgoingAsync;
129
130 void
131 invoke(const std::string& operation,
133 const ::std::pair<const ::Ice::Byte*, const ::Ice::Byte*>& inParams,
134 const Ice::Context& context)
135 {
136 _read = [](bool ok, Ice::InputStream* stream)
137 {
138 const ::Ice::Byte* encaps;
139 ::Ice::Int sz;
140 stream->readEncapsulation(encaps, sz);
141 return R { ok, { encaps, encaps + sz } };
142 };
143
144 try
145 {
146 prepare(operation, mode, context);
147 if(inParams.first == inParams.second)
148 {
149 _os.writeEmptyEncapsulation(_encoding);
150 }
151 else
152 {
153 _os.writeEncapsulation(inParams.first, static_cast<Ice::Int>(inParams.second - inParams.first));
154 }
155 OutgoingAsync::invoke(operation);
156 }
157 catch(const Ice::Exception& ex)
158 {
159 abort(ex);
160 }
161 }
162
163protected:
164
165 std::function<R(bool, Ice::InputStream*)> _read;
166};
167
168template<typename R>
169class InvokeLambdaOutgoing : public InvokeOutgoingAsyncT<R>, public LambdaInvoke
170{
171public:
172
173 InvokeLambdaOutgoing(const ::std::shared_ptr<::Ice::ObjectPrx>& proxy,
174 ::std::function<void(R)> response,
175 ::std::function<void(::std::exception_ptr)> ex,
176 ::std::function<void(bool)> sent) :
177 InvokeOutgoingAsyncT<R>(proxy, false), LambdaInvoke(::std::move(ex), ::std::move(sent))
178 {
179 if(response)
180 {
181#if ICE_CPLUSPLUS >= 201402L
182 // Move capture with C++14
183 _response = [this, response = std::move(response)](bool ok)
184#else
185 _response = [this, response](bool ok)
186#endif
187 {
188 if(this->_is.b.empty())
189 {
190 response(R { ok, { static_cast<Ice::Byte*>(nullptr), static_cast<Ice::Byte*>(nullptr) } });
191 }
192 else
193 {
194 response(this->_read(ok, &this->_is));
195 }
196 };
197 }
198 }
199};
200
201template<typename P, typename R>
202class InvokePromiseOutgoing : public InvokeOutgoingAsyncT<R>, public PromiseInvoke<P>
203{
204public:
205
206 InvokePromiseOutgoing(const std::shared_ptr<Ice::ObjectPrx>& proxy, bool synchronous) :
207 InvokeOutgoingAsyncT<R>(proxy, false)
208 {
209 this->_synchronous = synchronous;
210 this->_response = [this](bool ok)
211 {
212 if(this->_is.b.empty())
213 {
214 this->_promise.set_value(R { ok, { static_cast<Ice::Byte*>(nullptr), static_cast<Ice::Byte*>(nullptr) } });
215 }
216 else
217 {
218 this->_promise.set_value(this->_read(ok, &this->_is));
219 }
220 };
221 }
222
223 virtual bool handleSent(bool done, bool) override
224 {
225 if(done)
226 {
227 this->_promise.set_value(R { true, { static_cast<Ice::Byte*>(nullptr), static_cast<Ice::Byte*>(nullptr) } });
228 }
229 return false;
230 }
231};
232
233class ProxyGetConnectionLambda : public ProxyGetConnection, public LambdaInvoke
234{
235public:
236
237 ProxyGetConnectionLambda(const ::std::shared_ptr<::Ice::ObjectPrx>& proxy,
238 ::std::function<void(::std::shared_ptr<Ice::Connection>)> response,
239 ::std::function<void(::std::exception_ptr)> ex,
240 ::std::function<void(bool)> sent) :
241 ProxyGetConnection(proxy), LambdaInvoke(::std::move(ex), ::std::move(sent))
242 {
243#if ICE_CPLUSPLUS >= 201402L
244 _response = [&, response = std::move(response)](bool)
245#else
246 _response = [&, response](bool)
247#endif
248 {
249 response(getConnection());
250 };
251 }
252};
253
254template<typename P>
255class ProxyGetConnectionPromise : public ProxyGetConnection, public PromiseInvoke<P>
256{
257public:
258
259 ProxyGetConnectionPromise(const ::std::shared_ptr<::Ice::ObjectPrx>& proxy) : ProxyGetConnection(proxy)
260 {
261 this->_response = [&](bool)
262 {
263 this->_promise.set_value(getConnection());
264 };
265 }
266};
267
268class ProxyFlushBatchLambda : public ProxyFlushBatchAsync, public LambdaInvoke
269{
270public:
271
272 ProxyFlushBatchLambda(const ::std::shared_ptr<::Ice::ObjectPrx>& proxy,
273 ::std::function<void(::std::exception_ptr)> ex,
274 ::std::function<void(bool)> sent) :
275 ProxyFlushBatchAsync(proxy), LambdaInvoke(::std::move(ex), ::std::move(sent))
276 {
277 }
278};
279
280template<typename P>
281class ProxyFlushBatchPromise : public ProxyFlushBatchAsync, public PromiseInvoke<P>
282{
283public:
284
285 using ProxyFlushBatchAsync::ProxyFlushBatchAsync;
286
287 virtual bool handleSent(bool, bool) override
288 {
289 this->_promise.set_value();
290 return false;
291 }
292};
293
294}
295
296namespace Ice
297{
298
299class RouterPrx;
301using RouterPrxPtr = ::std::shared_ptr<::Ice::RouterPrx>;
303
304class LocatorPrx;
306using LocatorPrxPtr = ::std::shared_ptr<::Ice::LocatorPrx>;
308
309class LocalException;
310class OutputStream;
311
316class ICE_API ObjectPrx : public ::std::enable_shared_from_this<ObjectPrx>
317{
318public:
319
320 virtual ~ObjectPrx() = default;
321
322 friend ICE_API bool operator<(const ObjectPrx&, const ObjectPrx&);
323 friend ICE_API bool operator==(const ObjectPrx&, const ObjectPrx&);
324
329 ::std::shared_ptr<::Ice::Communicator> ice_getCommunicator() const;
330
335 ::std::string ice_toString() const;
336
344 bool
345 ice_isA(const ::std::string& typeId, const ::Ice::Context& context = ::Ice::noExplicitContext)
346 {
347 return _makePromiseOutgoing<bool>(true, this, &ObjectPrx::_iceI_isA, typeId, context).get();
348 }
349
359 ::std::function<void()>
360 ice_isAAsync(const ::std::string& typeId,
361 ::std::function<void(bool)> response,
362 ::std::function<void(::std::exception_ptr)> ex = nullptr,
363 ::std::function<void(bool)> sent = nullptr,
364 const ::Ice::Context& context = ::Ice::noExplicitContext)
365 {
366 return _makeLambdaOutgoing<bool>(std::move(response), std::move(ex), std::move(sent), this,
367 &ObjectPrx::_iceI_isA, typeId, context);
368 }
369
376 template<template<typename> class P = std::promise> auto
377 ice_isAAsync(const ::std::string& typeId, const ::Ice::Context& context = ::Ice::noExplicitContext)
378 -> decltype(std::declval<P<bool>>().get_future())
379 {
380 return _makePromiseOutgoing<bool, P>(false, this, &ObjectPrx::_iceI_isA, typeId, context);
381 }
382
384 void
385 _iceI_isA(const ::std::shared_ptr<::IceInternal::OutgoingAsyncT<bool>>&, const ::std::string&, const ::Ice::Context&);
387
392 void
393 ice_ping(const ::Ice::Context& context = ::Ice::noExplicitContext)
394 {
395 _makePromiseOutgoing<void>(true, this, &ObjectPrx::_iceI_ping, context).get();
396 }
397
406 ::std::function<void()>
407 ice_pingAsync(::std::function<void()> response,
408 ::std::function<void(::std::exception_ptr)> ex = nullptr,
409 ::std::function<void(bool)> sent = nullptr,
410 const ::Ice::Context& context = ::Ice::noExplicitContext)
411 {
412 return _makeLambdaOutgoing<void>(std::move(response), std::move(ex), std::move(sent), this,
413 &ObjectPrx::_iceI_ping, context);
414 }
415
421 template<template<typename> class P = std::promise>
422 auto ice_pingAsync(const ::Ice::Context& context = ::Ice::noExplicitContext)
423 -> decltype(std::declval<P<void>>().get_future())
424 {
425 return _makePromiseOutgoing<void, P>(false, this, &ObjectPrx::_iceI_ping, context);
426 }
427
429 void
430 _iceI_ping(const ::std::shared_ptr<::IceInternal::OutgoingAsyncT<void>>&, const ::Ice::Context&);
432
439 ::std::vector<::std::string>
440 ice_ids(const ::Ice::Context& context = ::Ice::noExplicitContext)
441 {
442 return _makePromiseOutgoing<::std::vector<::std::string>>(true, this, &ObjectPrx::_iceI_ids, context).get();
443 }
444
453 ::std::function<void()>
454 ice_idsAsync(::std::function<void(::std::vector<::std::string>)> response,
455 ::std::function<void(::std::exception_ptr)> ex = nullptr,
456 ::std::function<void(bool)> sent = nullptr,
457 const ::Ice::Context& context = ::Ice::noExplicitContext)
458 {
459 return _makeLambdaOutgoing<::std::vector<::std::string>>(std::move(response), std::move(ex), std::move(sent),
460 this, &ObjectPrx::_iceI_ids, context);
461 }
462
468 template<template<typename> class P = std::promise> auto
469 ice_idsAsync(const ::Ice::Context& context = ::Ice::noExplicitContext)
470 -> decltype(std::declval<P<::std::vector<::std::string>>>().get_future())
471 {
472 return _makePromiseOutgoing<::std::vector<::std::string>, P>(false, this, &ObjectPrx::_iceI_ids, context);
473 }
474
476 void
477 _iceI_ids(const ::std::shared_ptr<::IceInternal::OutgoingAsyncT<::std::vector<::std::string>>>&, const ::Ice::Context&);
479
485 ::std::string
486 ice_id(const ::Ice::Context& context = ::Ice::noExplicitContext)
487 {
488 return _makePromiseOutgoing<::std::string>(true, this, &ObjectPrx::_iceI_id, context).get();
489 }
490
499 ::std::function<void()>
500 ice_idAsync(::std::function<void(::std::string)> response,
501 ::std::function<void(::std::exception_ptr)> ex = nullptr,
502 ::std::function<void(bool)> sent = nullptr,
503 const ::Ice::Context& context = ::Ice::noExplicitContext)
504 {
505 return _makeLambdaOutgoing<::std::string>(std::move(response), std::move(ex), std::move(sent), this,
506 &ObjectPrx::_iceI_id, context);
507 }
508
514 template<template<typename> class P = std::promise>
515 auto ice_idAsync(const ::Ice::Context& context = ::Ice::noExplicitContext)
516 -> decltype(std::declval<P<::std::string>>().get_future())
517 {
518 return _makePromiseOutgoing<::std::string, P>(false, this, &ObjectPrx::_iceI_id, context);
519 }
520
522 void
523 _iceI_id(const ::std::shared_ptr<::IceInternal::OutgoingAsyncT<::std::string>>&, const ::Ice::Context&);
525
530 static const ::std::string& ice_staticId()
531 {
532 return ::Ice::Object::ice_staticId();
533 }
534
547 bool
548 ice_invoke(const ::std::string& operation,
550 const ::std::vector<Byte>& inParams,
551 ::std::vector<::Ice::Byte>& outParams,
552 const ::Ice::Context& context = ::Ice::noExplicitContext)
553 {
554 return ice_invoke(operation, mode, ::IceInternal::makePair(inParams), outParams, context);
555 }
556
565 template<template<typename> class P = std::promise> auto
566 ice_invokeAsync(const ::std::string& operation,
568 const ::std::vector<Byte>& inParams,
569 const ::Ice::Context& context = ::Ice::noExplicitContext)
570 -> decltype(std::declval<P<::Ice::Object::Ice_invokeResult>>().get_future())
571 {
572 return ice_invokeAsync<P>(operation, mode, ::IceInternal::makePair(inParams), context);
573 }
574
586 ::std::function<void()>
587 ice_invokeAsync(const ::std::string& operation,
589 const ::std::vector<::Ice::Byte>& inParams,
590 ::std::function<void(bool, ::std::vector<::Ice::Byte>)> response,
591 ::std::function<void(::std::exception_ptr)> ex = nullptr,
592 ::std::function<void(bool)> sent = nullptr,
593 const ::Ice::Context& context = ::Ice::noExplicitContext)
594 {
595 using Outgoing = ::IceInternal::InvokeLambdaOutgoing<::Ice::Object::Ice_invokeResult>;
596 ::std::function<void(::Ice::Object::Ice_invokeResult&&)> r;
597 if(response)
598 {
599#if ICE_CPLUSPLUS >= 201402L
600 r = [response = std::move(response)](::Ice::Object::Ice_invokeResult&& result)
601#else
602 r = [response](::Ice::Object::Ice_invokeResult&& result)
603#endif
604 {
605 response(result.returnValue, std::move(result.outParams));
606 };
607 }
608 auto outAsync = ::std::make_shared<Outgoing>(shared_from_this(), std::move(r), std::move(ex), std::move(sent));
609 outAsync->invoke(operation, mode, ::IceInternal::makePair(inParams), context);
610 return [outAsync]() { outAsync->cancel(); };
611 }
612
625 bool
626 ice_invoke(const ::std::string& operation,
628 const ::std::pair<const ::Ice::Byte*, const ::Ice::Byte*>& inParams,
629 ::std::vector<::Ice::Byte>& outParams,
630 const ::Ice::Context& context = ::Ice::noExplicitContext)
631 {
632 using Outgoing = ::IceInternal::InvokePromiseOutgoing<
633 ::std::promise<::Ice::Object::Ice_invokeResult>, ::Ice::Object::Ice_invokeResult>;
634 auto outAsync = ::std::make_shared<Outgoing>(shared_from_this(), true);
635 outAsync->invoke(operation, mode, inParams, context);
636 auto result = outAsync->getFuture().get();
637 outParams.swap(result.outParams);
638 return result.returnValue;
639 }
640
649 template<template<typename> class P = std::promise> auto
650 ice_invokeAsync(const ::std::string& operation,
652 const ::std::pair<const ::Ice::Byte*, const ::Ice::Byte*>& inParams,
653 const ::Ice::Context& context = ::Ice::noExplicitContext)
654 -> decltype(std::declval<P<::Ice::Object::Ice_invokeResult>>().get_future())
655 {
656 using Outgoing =
657 ::IceInternal::InvokePromiseOutgoing<P<::Ice::Object::Ice_invokeResult>, ::Ice::Object::Ice_invokeResult>;
658 auto outAsync = ::std::make_shared<Outgoing>(shared_from_this(), false);
659 outAsync->invoke(operation, mode, inParams, context);
660 return outAsync->getFuture();
661 }
662
674 ::std::function<void()>
675 ice_invokeAsync(const ::std::string& operation,
677 const ::std::pair<const ::Ice::Byte*, const ::Ice::Byte*>& inParams,
678 ::std::function<void(bool, ::std::pair<const ::Ice::Byte*, const ::Ice::Byte*>)> response,
679 ::std::function<void(::std::exception_ptr)> ex = nullptr,
680 ::std::function<void(bool)> sent = nullptr,
681 const ::Ice::Context& context = ::Ice::noExplicitContext)
682 {
683 using Result = ::std::tuple<bool, ::std::pair<const ::Ice::Byte*, const ::Ice::Byte*>>;
684 using Outgoing = ::IceInternal::InvokeLambdaOutgoing<Result>;
685
686 ::std::function<void(Result&&)> r;
687 if(response)
688 {
689#if ICE_CPLUSPLUS >= 201402L
690 r = [response = std::move(response)](Result&& result)
691#else
692 r = [response](Result&& result)
693#endif
694 {
695 response(::std::get<0>(result), ::std::move(::std::get<1>(result)));
696 };
697 }
698 auto outAsync = ::std::make_shared<Outgoing>(shared_from_this(), std::move(r), std::move(ex), std::move(sent));
699 outAsync->invoke(operation, mode, inParams, context);
700 return [outAsync]() { outAsync->cancel(); };
701 }
702
707 ::Ice::Identity ice_getIdentity() const;
708
714 ::std::shared_ptr<::Ice::ObjectPrx> ice_identity(const ::Ice::Identity& id) const;
715
720 ::Ice::Context ice_getContext() const;
721
727 ::std::shared_ptr<::Ice::ObjectPrx> ice_context(const ::Ice::Context& context) const;
728
733 const ::std::string& ice_getFacet() const;
734
740 ::std::shared_ptr<::Ice::ObjectPrx> ice_facet(const ::std::string& facet) const;
741
746 ::std::string ice_getAdapterId() const;
747
753 ::std::shared_ptr<::Ice::ObjectPrx> ice_adapterId(const ::std::string& id) const;
754
759 ::Ice::EndpointSeq ice_getEndpoints() const;
760
766 ::std::shared_ptr<::Ice::ObjectPrx> ice_endpoints(const ::Ice::EndpointSeq& endpoints) const;
767
772 ::Ice::Int ice_getLocatorCacheTimeout() const;
773
779 ::std::shared_ptr<::Ice::ObjectPrx> ice_locatorCacheTimeout(::Ice::Int timeout) const;
780
785 bool ice_isConnectionCached() const;
786
792 ::std::shared_ptr<::Ice::ObjectPrx> ice_connectionCached(bool b) const;
793
798 ::Ice::EndpointSelectionType ice_getEndpointSelection() const;
799
805 ::std::shared_ptr<::Ice::ObjectPrx> ice_endpointSelection(::Ice::EndpointSelectionType type) const;
806
811 bool ice_isSecure() const;
812
819 ::std::shared_ptr<::Ice::ObjectPrx> ice_secure(bool b) const;
820
825 ::Ice::EncodingVersion ice_getEncodingVersion() const;
826
833 ::std::shared_ptr<::Ice::ObjectPrx> ice_encodingVersion(const ::Ice::EncodingVersion& version) const;
834
840 bool ice_isPreferSecure() const;
841
849 ::std::shared_ptr<::Ice::ObjectPrx> ice_preferSecure(bool b) const;
850
856 ::std::shared_ptr<::Ice::RouterPrx> ice_getRouter() const;
857
863 ::std::shared_ptr<::Ice::ObjectPrx> ice_router(const ::std::shared_ptr<::Ice::RouterPrx>& router) const;
864
869 ::std::shared_ptr<::Ice::LocatorPrx> ice_getLocator() const;
870
876 ::std::shared_ptr<::Ice::ObjectPrx> ice_locator(const ::std::shared_ptr<::Ice::LocatorPrx>& locator) const;
877
882 bool ice_isCollocationOptimized() const;
883
889 ::std::shared_ptr<::Ice::ObjectPrx> ice_collocationOptimized(bool b) const;
890
895 ::Ice::Int ice_getInvocationTimeout() const;
896
902 ::std::shared_ptr<::Ice::ObjectPrx> ice_invocationTimeout(::Ice::Int timeout) const;
903
908 ::std::shared_ptr<::Ice::ObjectPrx> ice_twoway() const;
909
914 bool ice_isTwoway() const;
915
920 ::std::shared_ptr<::Ice::ObjectPrx> ice_oneway() const;
921
926 bool ice_isOneway() const;
927
932 ::std::shared_ptr<::Ice::ObjectPrx> ice_batchOneway() const;
933
938 bool ice_isBatchOneway() const;
939
944 ::std::shared_ptr<::Ice::ObjectPrx> ice_datagram() const;
945
950 bool ice_isDatagram() const;
951
956 ::std::shared_ptr<::Ice::ObjectPrx> ice_batchDatagram() const;
957
962 bool ice_isBatchDatagram() const;
963
970 ::std::shared_ptr<::Ice::ObjectPrx> ice_compress(bool b) const;
971
977 ::Ice::optional<bool> ice_getCompress() const;
978
985 ::std::shared_ptr<::Ice::ObjectPrx> ice_timeout(int timeout) const;
986
992 ::Ice::optional<int> ice_getTimeout() const;
993
1000 ::std::shared_ptr<::Ice::ObjectPrx> ice_connectionId(const ::std::string& id) const;
1001
1006 ::std::string ice_getConnectionId() const;
1007
1014 ::std::shared_ptr<::Ice::ObjectPrx> ice_fixed(const ::std::shared_ptr<::Ice::Connection>& connection) const;
1015
1020 bool ice_isFixed() const;
1021
1027 ::std::shared_ptr<::Ice::Connection>
1028 ice_getConnection()
1029 {
1030 return ice_getConnectionAsync().get();
1031 }
1032
1041 ::std::function<void()>
1042 ice_getConnectionAsync(::std::function<void(::std::shared_ptr<::Ice::Connection>)> response,
1043 ::std::function<void(::std::exception_ptr)> ex = nullptr,
1044 ::std::function<void(bool)> sent = nullptr)
1045 {
1046 using LambdaOutgoing = ::IceInternal::ProxyGetConnectionLambda;
1047 auto outAsync = ::std::make_shared<LambdaOutgoing>(shared_from_this(), std::move(response), std::move(ex), std::move(sent));
1048 _iceI_getConnection(outAsync);
1049 return [outAsync]() { outAsync->cancel(); };
1050 }
1051
1057 template<template<typename> class P = std::promise> auto
1058 ice_getConnectionAsync() -> decltype(std::declval<P<::std::shared_ptr<::Ice::Connection>>>().get_future())
1059 {
1060 using PromiseOutgoing = ::IceInternal::ProxyGetConnectionPromise<P<::std::shared_ptr<::Ice::Connection>>>;
1061 auto outAsync = ::std::make_shared<PromiseOutgoing>(shared_from_this());
1062 _iceI_getConnection(outAsync);
1063 return outAsync->getFuture();
1064 }
1065
1067 void _iceI_getConnection(const ::std::shared_ptr<::IceInternal::ProxyGetConnection>&);
1069
1076 ::std::shared_ptr<::Ice::Connection> ice_getCachedConnection() const;
1077
1081 void ice_flushBatchRequests()
1082 {
1083 return ice_flushBatchRequestsAsync().get();
1084 }
1085
1092 std::function<void()>
1093 ice_flushBatchRequestsAsync(::std::function<void(::std::exception_ptr)> ex,
1094 ::std::function<void(bool)> sent = nullptr)
1095 {
1096 using LambdaOutgoing = ::IceInternal::ProxyFlushBatchLambda;
1097 auto outAsync = ::std::make_shared<LambdaOutgoing>(shared_from_this(), std::move(ex), std::move(sent));
1098 _iceI_flushBatchRequests(outAsync);
1099 return [outAsync]() { outAsync->cancel(); };
1100 }
1101
1106 template<template<typename> class P = std::promise> auto
1107 ice_flushBatchRequestsAsync() -> decltype(std::declval<P<void>>().get_future())
1108 {
1109 using PromiseOutgoing = ::IceInternal::ProxyFlushBatchPromise<P<void>>;
1110 auto outAsync = ::std::make_shared<PromiseOutgoing>(shared_from_this());
1111 _iceI_flushBatchRequests(outAsync);
1112 return outAsync->getFuture();
1113 }
1114
1116 void _iceI_flushBatchRequests(const ::std::shared_ptr<::IceInternal::ProxyFlushBatchAsync>&);
1117
1118 const ::IceInternal::ReferencePtr& _getReference() const { return _reference; }
1119
1120 void _copyFrom(const std::shared_ptr<::Ice::ObjectPrx>&);
1121
1122 int _handleException(const ::Ice::Exception&, const ::IceInternal::RequestHandlerPtr&, ::Ice::OperationMode,
1123 bool, int&);
1124
1125 void _checkTwowayOnly(const ::std::string&) const;
1126
1127 ::IceInternal::RequestHandlerPtr _getRequestHandler();
1128 ::IceInternal::BatchRequestQueuePtr _getBatchRequestQueue();
1129 ::IceInternal::RequestHandlerPtr _setRequestHandler(const ::IceInternal::RequestHandlerPtr&);
1130 void _updateRequestHandler(const ::IceInternal::RequestHandlerPtr&, const ::IceInternal::RequestHandlerPtr&);
1131
1132 int _hash() const;
1133
1134 void _write(OutputStream&) const;
1136
1137protected:
1138
1140 template<typename R, template<typename> class P = ::std::promise, typename Obj, typename Fn, typename... Args>
1141 auto _makePromiseOutgoing(bool sync, Obj obj, Fn fn, Args&&... args)
1142 -> decltype(std::declval<P<R>>().get_future())
1143 {
1144 auto outAsync = ::std::make_shared<::IceInternal::PromiseOutgoing<P<R>, R>>(shared_from_this(), sync);
1145 (obj->*fn)(outAsync, std::forward<Args>(args)...);
1146 return outAsync->getFuture();
1147 }
1148
1149 template<typename R, typename Re, typename E, typename S, typename Obj, typename Fn, typename... Args>
1150 ::std::function<void()> _makeLambdaOutgoing(Re r, E e, S s, Obj obj, Fn fn, Args&&... args)
1151 {
1152 auto outAsync = ::std::make_shared<::IceInternal::LambdaOutgoing<R>>(shared_from_this(),
1153 std::move(r), std::move(e), std::move(s));
1154 (obj->*fn)(outAsync, std::forward<Args>(args)...);
1155 return [outAsync]() { outAsync->cancel(); };
1156 }
1157
1158 virtual ::std::shared_ptr<ObjectPrx> _newInstance() const;
1159 ObjectPrx() = default;
1160 friend ::std::shared_ptr<ObjectPrx> IceInternal::createProxy<ObjectPrx>();
1162
1163private:
1164
1165 void setup(const ::IceInternal::ReferencePtr&);
1166 friend class ::IceInternal::ProxyFactory;
1167
1168 ::IceInternal::ReferencePtr _reference;
1169 ::IceInternal::RequestHandlerPtr _requestHandler;
1170 ::IceInternal::BatchRequestQueuePtr _batchRequestQueue;
1171 IceUtil::Mutex _mutex;
1172};
1173
1174inline bool
1175operator>(const ObjectPrx& lhs, const ObjectPrx& rhs)
1176{
1177 return rhs < lhs;
1178}
1179
1180inline bool
1181operator<=(const ObjectPrx& lhs, const ObjectPrx& rhs)
1182{
1183 return !(lhs > rhs);
1184}
1185
1186inline bool
1187operator>=(const ObjectPrx& lhs, const ObjectPrx& rhs)
1188{
1189 return !(lhs < rhs);
1190}
1191
1192inline bool
1193operator!=(const ObjectPrx& lhs, const ObjectPrx& rhs)
1194{
1195 return !(lhs == rhs);
1196}
1197
1202template<typename Prx, typename... Bases>
1203class Proxy : public virtual Bases...
1204{
1205public:
1206
1212 ::std::shared_ptr<Prx> ice_context(const ::Ice::Context& context) const
1213 {
1214 return ::std::dynamic_pointer_cast<Prx>(ObjectPrx::ice_context(context));
1215 }
1216
1222 ::std::shared_ptr<Prx> ice_adapterId(const ::std::string& id) const
1223 {
1224 return ::std::dynamic_pointer_cast<Prx>(ObjectPrx::ice_adapterId(id));
1225 }
1226
1232 ::std::shared_ptr<Prx> ice_endpoints(const ::Ice::EndpointSeq& endpoints) const
1233 {
1234 return ::std::dynamic_pointer_cast<Prx>(ObjectPrx::ice_endpoints(endpoints));
1235 }
1236
1242 ::std::shared_ptr<Prx> ice_locatorCacheTimeout(int timeout) const
1243 {
1244 return ::std::dynamic_pointer_cast<Prx>(ObjectPrx::ice_locatorCacheTimeout(timeout));
1245 }
1246
1252 ::std::shared_ptr<Prx> ice_connectionCached(bool b) const
1253 {
1254 return ::std::dynamic_pointer_cast<Prx>(ObjectPrx::ice_connectionCached(b));
1255 }
1256
1262 ::std::shared_ptr<Prx> ice_endpointSelection(::Ice::EndpointSelectionType type) const
1263 {
1264 return ::std::dynamic_pointer_cast<Prx>(ObjectPrx::ice_endpointSelection(type));
1265 }
1266
1273 ::std::shared_ptr<Prx> ice_secure(bool b) const
1274 {
1275 return ::std::dynamic_pointer_cast<Prx>(ObjectPrx::ice_secure(b));
1276 }
1277
1285 ::std::shared_ptr<Prx> ice_preferSecure(bool b) const
1286 {
1287 return ::std::dynamic_pointer_cast<Prx>(ObjectPrx::ice_preferSecure(b));
1288 }
1289
1295 ::std::shared_ptr<Prx> ice_router(const ::std::shared_ptr<::Ice::RouterPrx>& router) const
1296 {
1297 return ::std::dynamic_pointer_cast<Prx>(ObjectPrx::ice_router(router));
1298 }
1299
1305 ::std::shared_ptr<Prx> ice_locator(const ::std::shared_ptr<::Ice::LocatorPrx>& locator) const
1306 {
1307 return ::std::dynamic_pointer_cast<Prx>(ObjectPrx::ice_locator(locator));
1308 }
1309
1315 ::std::shared_ptr<Prx> ice_collocationOptimized(bool b) const
1316 {
1317 return ::std::dynamic_pointer_cast<Prx>(ObjectPrx::ice_collocationOptimized(b));
1318 }
1319
1325 ::std::shared_ptr<Prx> ice_invocationTimeout(int timeout) const
1326 {
1327 return ::std::dynamic_pointer_cast<Prx>(ObjectPrx::ice_invocationTimeout(timeout));
1328 }
1329
1334 ::std::shared_ptr<Prx> ice_twoway() const
1335 {
1336 return ::std::dynamic_pointer_cast<Prx>(ObjectPrx::ice_twoway());
1337 }
1338
1343 ::std::shared_ptr<Prx> ice_oneway() const
1344 {
1345 return ::std::dynamic_pointer_cast<Prx>(ObjectPrx::ice_oneway());
1346 }
1347
1352 ::std::shared_ptr<Prx> ice_batchOneway() const
1353 {
1354 return ::std::dynamic_pointer_cast<Prx>(ObjectPrx::ice_batchOneway());
1355 }
1356
1361 ::std::shared_ptr<Prx> ice_datagram() const
1362 {
1363 return ::std::dynamic_pointer_cast<Prx>(ObjectPrx::ice_datagram());
1364 }
1365
1370 ::std::shared_ptr<Prx> ice_batchDatagram() const
1371 {
1372 return ::std::dynamic_pointer_cast<Prx>(ObjectPrx::ice_batchDatagram());
1373 }
1374
1381 ::std::shared_ptr<Prx> ice_compress(bool b) const
1382 {
1383 return ::std::dynamic_pointer_cast<Prx>(ObjectPrx::ice_compress(b));
1384 }
1385
1392 ::std::shared_ptr<Prx> ice_timeout(int timeout) const
1393 {
1394 return ::std::dynamic_pointer_cast<Prx>(ObjectPrx::ice_timeout(timeout));
1395 }
1396
1403 ::std::shared_ptr<Prx> ice_connectionId(const ::std::string& id) const
1404 {
1405 return ::std::dynamic_pointer_cast<Prx>(ObjectPrx::ice_connectionId(id));
1406 }
1407
1414 ::std::shared_ptr<Prx> ice_fixed(const ::std::shared_ptr<::Ice::Connection>& connection) const
1415 {
1416 return ::std::dynamic_pointer_cast<Prx>(ObjectPrx::ice_fixed(connection));
1417 }
1418
1425 ::std::shared_ptr<Prx> ice_encodingVersion(const ::Ice::EncodingVersion& version) const
1426 {
1427 return ::std::dynamic_pointer_cast<Prx>(ObjectPrx::ice_encodingVersion(version));
1428 }
1429
1430protected:
1431
1433 virtual ::std::shared_ptr<ObjectPrx> _newInstance() const = 0;
1435};
1436
1437ICE_API ::std::ostream& operator<<(::std::ostream&, const ::Ice::ObjectPrx&);
1438
1445ICE_API bool proxyIdentityLess(const ::std::shared_ptr<ObjectPrx>& lhs, const ::std::shared_ptr<ObjectPrx>& rhs);
1446
1453ICE_API bool proxyIdentityEqual(const ::std::shared_ptr<ObjectPrx>& lhs, const ::std::shared_ptr<ObjectPrx>& rhs);
1454
1462ICE_API bool proxyIdentityAndFacetLess(const ::std::shared_ptr<ObjectPrx>& lhs,
1463 const ::std::shared_ptr<ObjectPrx>& rhs);
1464
1472ICE_API bool proxyIdentityAndFacetEqual(const ::std::shared_ptr<ObjectPrx>& lhs,
1473 const ::std::shared_ptr<ObjectPrx>& rhs);
1474
1475#ifdef __clang__
1476# pragma clang diagnostic push
1477# pragma clang diagnostic ignored "-Wdeprecated-declarations" // for std::binary_function below
1478#endif
1479
1485struct ProxyIdentityLess
1486#if (ICE_CPLUSPLUS < 201703L)
1487 : std::binary_function<bool, ::std::shared_ptr<ObjectPrx>&, ::std::shared_ptr<ObjectPrx>&>
1488#endif
1489{
1490 bool operator()(const ::std::shared_ptr<ObjectPrx>& lhs, const ::std::shared_ptr<ObjectPrx>& rhs) const
1491 {
1492 return proxyIdentityLess(lhs, rhs);
1493 }
1494};
1495
1501struct ProxyIdentityEqual
1502#if (ICE_CPLUSPLUS < 201703L)
1503 : std::binary_function<bool, ::std::shared_ptr<ObjectPrx>&, ::std::shared_ptr<ObjectPrx>&>
1504#endif
1505{
1506 bool operator()(const ::std::shared_ptr<ObjectPrx>& lhs, const ::std::shared_ptr<ObjectPrx>& rhs) const
1507 {
1508 return proxyIdentityEqual(lhs, rhs);
1509 }
1510};
1511
1518#if (ICE_CPLUSPLUS < 201703L)
1519 : std::binary_function<bool, ::std::shared_ptr<ObjectPrx>&, ::std::shared_ptr<ObjectPrx>&>
1520#endif
1521{
1522 bool operator()(const ::std::shared_ptr<ObjectPrx>& lhs, const ::std::shared_ptr<ObjectPrx>& rhs) const
1523 {
1524 return proxyIdentityAndFacetLess(lhs, rhs);
1525 }
1526};
1527
1534#if (ICE_CPLUSPLUS < 201703L)
1535 : std::binary_function<bool, ::std::shared_ptr<ObjectPrx>&, ::std::shared_ptr<ObjectPrx>&>
1536#endif
1537{
1538 bool operator()(const ::std::shared_ptr<ObjectPrx>& lhs, const ::std::shared_ptr<ObjectPrx>& rhs) const
1539 {
1540 return proxyIdentityAndFacetEqual(lhs, rhs);
1541 }
1542};
1543
1544#ifdef __clang__
1545# pragma clang diagnostic pop
1546#endif
1547
1553template<typename P,
1554 typename T,
1555 typename ::std::enable_if<::std::is_base_of<::Ice::ObjectPrx, P>::value>::type* = nullptr,
1556 typename ::std::enable_if<::std::is_base_of<::Ice::ObjectPrx, T>::value>::type* = nullptr> ::std::shared_ptr<P>
1557uncheckedCast(const ::std::shared_ptr<T>& b)
1558{
1559 ::std::shared_ptr<P> r;
1560 if(b)
1561 {
1562 r = ::std::dynamic_pointer_cast<P>(b);
1563 if(!r)
1564 {
1565 r = IceInternal::createProxy<P>();
1566 r->_copyFrom(b);
1567 }
1568 }
1569 return r;
1570}
1571
1578template<typename P,
1579 typename T,
1580 typename ::std::enable_if<::std::is_base_of<::Ice::ObjectPrx, P>::value>::type* = nullptr,
1581 typename ::std::enable_if<::std::is_base_of<::Ice::ObjectPrx, T>::value>::type* = nullptr> ::std::shared_ptr<P>
1582uncheckedCast(const ::std::shared_ptr<T>& b, const std::string& f)
1583{
1584 ::std::shared_ptr<P> r;
1585 if(b)
1586 {
1587 r = IceInternal::createProxy<P>();
1588 r->_copyFrom(b->ice_facet(f));
1589 }
1590 return r;
1591}
1592
1600template<typename P,
1601 typename T,
1602 typename ::std::enable_if<::std::is_base_of<::Ice::ObjectPrx, P>::value>::type* = nullptr,
1603 typename ::std::enable_if<::std::is_base_of<::Ice::ObjectPrx, T>::value>::type* = nullptr> ::std::shared_ptr<P>
1604checkedCast(const ::std::shared_ptr<T>& b, const ::Ice::Context& context = Ice::noExplicitContext)
1605{
1606 ::std::shared_ptr<P> r;
1607 if(b)
1608 {
1609 if(b->ice_isA(P::ice_staticId(), context))
1610 {
1611 r = IceInternal::createProxy<P>();
1612 r->_copyFrom(b);
1613 }
1614 }
1615 return r;
1616}
1617
1626template<typename P,
1627 typename T,
1628 typename ::std::enable_if<::std::is_base_of<::Ice::ObjectPrx, P>::value>::type* = nullptr,
1629 typename ::std::enable_if<::std::is_base_of<::Ice::ObjectPrx, T>::value>::type* = nullptr> ::std::shared_ptr<P>
1630checkedCast(const ::std::shared_ptr<T>& b, const std::string& f, const ::Ice::Context& context = Ice::noExplicitContext)
1631{
1632 ::std::shared_ptr<P> r;
1633 if(b)
1634 {
1635 try
1636 {
1637 ::std::shared_ptr<::Ice::ObjectPrx> bb = b->ice_facet(f);
1638 if(bb->ice_isA(P::ice_staticId(), context))
1639 {
1640 r = IceInternal::createProxy<P>();
1641 r->_copyFrom(bb);
1642 }
1643 }
1644 catch(const Ice::FacetNotExistException&)
1645 {
1646 }
1647 }
1648 return r;
1649}
1650
1651}
1652
1653#else // C++98 mapping
1654
1655namespace IceProxy
1656{
1657
1658namespace Ice
1659{
1660
1662class Locator;
1663ICE_API ::IceProxy::Ice::Object* upCast(::IceProxy::Ice::Locator*);
1664
1665class Router;
1666ICE_API ::IceProxy::Ice::Object* upCast(::IceProxy::Ice::Router*);
1668
1669}
1670
1671}
1672
1673namespace Ice
1674{
1675
1676typedef ::IceInternal::ProxyHandle< ::IceProxy::Ice::Router> RouterPrx;
1677typedef RouterPrx RouterPrxPtr;
1678typedef ::IceInternal::ProxyHandle< ::IceProxy::Ice::Locator> LocatorPrx;
1680
1681class LocalException;
1682class OutputStream;
1683
1690class Callback_Object_ice_isA_Base : public virtual ::IceInternal::CallbackBase { };
1691typedef ::IceUtil::Handle< Callback_Object_ice_isA_Base> Callback_Object_ice_isAPtr;
1692
1699class Callback_Object_ice_ping_Base : public virtual ::IceInternal::CallbackBase { };
1700typedef ::IceUtil::Handle< Callback_Object_ice_ping_Base> Callback_Object_ice_pingPtr;
1701
1708class Callback_Object_ice_ids_Base : public virtual ::IceInternal::CallbackBase { };
1709typedef ::IceUtil::Handle< Callback_Object_ice_ids_Base> Callback_Object_ice_idsPtr;
1710
1717class Callback_Object_ice_id_Base : public virtual ::IceInternal::CallbackBase { };
1718typedef ::IceUtil::Handle< Callback_Object_ice_id_Base> Callback_Object_ice_idPtr;
1719
1726class Callback_Object_ice_invoke_Base : public virtual ::IceInternal::CallbackBase { };
1727typedef ::IceUtil::Handle< Callback_Object_ice_invoke_Base> Callback_Object_ice_invokePtr;
1728
1735class Callback_Object_ice_flushBatchRequests_Base : public virtual ::IceInternal::CallbackBase { };
1736typedef ::IceUtil::Handle< Callback_Object_ice_flushBatchRequests_Base> Callback_Object_ice_flushBatchRequestsPtr;
1737
1744class Callback_Object_ice_getConnection_Base : public virtual ::IceInternal::CallbackBase { };
1745typedef ::IceUtil::Handle< Callback_Object_ice_getConnection_Base> Callback_Object_ice_getConnectionPtr;
1746
1747}
1748
1749namespace IceProxy { namespace Ice
1750{
1751
1757{
1758public:
1759
1760 bool operator==(const Object&) const;
1761 bool operator<(const Object&) const;
1762
1768
1773 ::std::string ice_toString() const;
1774
1782 bool ice_isA(const ::std::string& typeId, const ::Ice::Context& context = ::Ice::noExplicitContext)
1783 {
1784 return end_ice_isA(_iceI_begin_ice_isA(typeId, context, ::IceInternal::dummyCallback, 0, true));
1785 }
1786
1793 ::Ice::AsyncResultPtr begin_ice_isA(const ::std::string& typeId,
1794 const ::Ice::Context& context = ::Ice::noExplicitContext)
1795 {
1796 return _iceI_begin_ice_isA(typeId, context, ::IceInternal::dummyCallback, 0);
1797 }
1798
1806 ::Ice::AsyncResultPtr begin_ice_isA(const ::std::string& typeId,
1807 const ::Ice::CallbackPtr& cb,
1808 const ::Ice::LocalObjectPtr& cookie = 0)
1809 {
1810 return _iceI_begin_ice_isA(typeId, ::Ice::noExplicitContext, cb, cookie);
1811 }
1812
1821 ::Ice::AsyncResultPtr begin_ice_isA(const ::std::string& typeId,
1822 const ::Ice::Context& context,
1823 const ::Ice::CallbackPtr& cb,
1824 const ::Ice::LocalObjectPtr& cookie = 0)
1825 {
1826 return _iceI_begin_ice_isA(typeId, context, cb, cookie);
1827 }
1828
1836 ::Ice::AsyncResultPtr begin_ice_isA(const ::std::string& typeId,
1837 const ::Ice::Callback_Object_ice_isAPtr& cb,
1838 const ::Ice::LocalObjectPtr& cookie = 0)
1839 {
1840 return _iceI_begin_ice_isA(typeId, ::Ice::noExplicitContext, cb, cookie);
1841 }
1842
1851 ::Ice::AsyncResultPtr begin_ice_isA(const ::std::string& typeId,
1852 const ::Ice::Context& context,
1853 const ::Ice::Callback_Object_ice_isAPtr& cb,
1854 const ::Ice::LocalObjectPtr& cookie = 0)
1855 {
1856 return _iceI_begin_ice_isA(typeId, context, cb, cookie);
1857 }
1858
1865 bool end_ice_isA(const ::Ice::AsyncResultPtr& result);
1866
1871 void ice_ping(const ::Ice::Context& context = ::Ice::noExplicitContext)
1872 {
1873 end_ice_ping(_iceI_begin_ice_ping(context, ::IceInternal::dummyCallback, 0, true));
1874 }
1875
1882 {
1883 return _iceI_begin_ice_ping(context, ::IceInternal::dummyCallback, 0);
1884 }
1885
1892 ::Ice::AsyncResultPtr begin_ice_ping(const ::Ice::CallbackPtr& cb, const ::Ice::LocalObjectPtr& cookie = 0)
1893 {
1894 return _iceI_begin_ice_ping(::Ice::noExplicitContext, cb, cookie);
1895 }
1896
1904 ::Ice::AsyncResultPtr begin_ice_ping(const ::Ice::Context& context, const ::Ice::CallbackPtr& cb,
1905 const ::Ice::LocalObjectPtr& cookie = 0)
1906 {
1907 return _iceI_begin_ice_ping(context, cb, cookie);
1908 }
1909
1916 ::Ice::AsyncResultPtr begin_ice_ping(const ::Ice::Callback_Object_ice_pingPtr& cb,
1917 const ::Ice::LocalObjectPtr& cookie = 0)
1918 {
1919 return _iceI_begin_ice_ping(::Ice::noExplicitContext, cb, cookie);
1920 }
1921
1929 ::Ice::AsyncResultPtr begin_ice_ping(const ::Ice::Context& context, const ::Ice::Callback_Object_ice_pingPtr& cb,
1930 const ::Ice::LocalObjectPtr& cookie = 0)
1931 {
1932 return _iceI_begin_ice_ping(context, cb, cookie);
1933 }
1934
1939 void end_ice_ping(const ::Ice::AsyncResultPtr& result);
1940
1947 ::std::vector< ::std::string> ice_ids(const ::Ice::Context& context = ::Ice::noExplicitContext)
1948 {
1949 return end_ice_ids(_iceI_begin_ice_ids(context, ::IceInternal::dummyCallback, 0, true));
1950 }
1951
1958 {
1959 return _iceI_begin_ice_ids(context, ::IceInternal::dummyCallback, 0);
1960 }
1961
1968 ::Ice::AsyncResultPtr begin_ice_ids(const ::Ice::CallbackPtr& cb,
1969 const ::Ice::LocalObjectPtr& cookie = 0)
1970 {
1971 return _iceI_begin_ice_ids(::Ice::noExplicitContext, cb, cookie);
1972 }
1973
1981 ::Ice::AsyncResultPtr begin_ice_ids(const ::Ice::Context& context,
1982 const ::Ice::CallbackPtr& cb,
1983 const ::Ice::LocalObjectPtr& cookie = 0)
1984 {
1985 return _iceI_begin_ice_ids(context, cb, cookie);
1986 }
1987
1994 ::Ice::AsyncResultPtr begin_ice_ids(const ::Ice::Callback_Object_ice_idsPtr& cb,
1995 const ::Ice::LocalObjectPtr& cookie = 0)
1996 {
1997 return _iceI_begin_ice_ids(::Ice::noExplicitContext, cb, cookie);
1998 }
1999
2007 ::Ice::AsyncResultPtr begin_ice_ids(const ::Ice::Context& context,
2008 const ::Ice::Callback_Object_ice_idsPtr& cb,
2009 const ::Ice::LocalObjectPtr& cookie = 0)
2010 {
2011 return _iceI_begin_ice_ids(context, cb, cookie);
2012 }
2013
2020 ::std::vector< ::std::string> end_ice_ids(const ::Ice::AsyncResultPtr& result);
2021
2027 ::std::string ice_id(const ::Ice::Context& context = ::Ice::noExplicitContext)
2028 {
2029 return end_ice_id(_iceI_begin_ice_id(context, ::IceInternal::dummyCallback, 0, true));
2030 }
2031
2038 {
2039 return _iceI_begin_ice_id(context, ::IceInternal::dummyCallback, 0);
2040 }
2041
2048 ::Ice::AsyncResultPtr begin_ice_id(const ::Ice::CallbackPtr& cb,
2049 const ::Ice::LocalObjectPtr& cookie = 0)
2050 {
2051 return _iceI_begin_ice_id(::Ice::noExplicitContext, cb, cookie);
2052 }
2053
2061 ::Ice::AsyncResultPtr begin_ice_id(const ::Ice::Context& context,
2062 const ::Ice::CallbackPtr& cb,
2063 const ::Ice::LocalObjectPtr& cookie = 0)
2064 {
2065 return _iceI_begin_ice_id(context, cb, cookie);
2066 }
2067
2074 ::Ice::AsyncResultPtr begin_ice_id(const ::Ice::Callback_Object_ice_idPtr& cb,
2075 const ::Ice::LocalObjectPtr& cookie = 0)
2076 {
2077 return _iceI_begin_ice_id(::Ice::noExplicitContext, cb, cookie);
2078 }
2079
2087 ::Ice::AsyncResultPtr begin_ice_id(const ::Ice::Context& context,
2088 const ::Ice::Callback_Object_ice_idPtr& cb,
2089 const ::Ice::LocalObjectPtr& cookie = 0)
2090 {
2091 return _iceI_begin_ice_id(context, cb, cookie);
2092 }
2093
2099 ::std::string end_ice_id(const ::Ice::AsyncResultPtr& result);
2100
2105 static const ::std::string& ice_staticId()
2106 {
2107 return ::Ice::Object::ice_staticId();
2108 }
2109
2122 bool ice_invoke(const ::std::string& operation,
2124 const ::std::vector< ::Ice::Byte>& inParams,
2125 ::std::vector< ::Ice::Byte>& outParams,
2126 const ::Ice::Context& context = ::Ice::noExplicitContext);
2127
2135 ::Ice::AsyncResultPtr begin_ice_invoke(const ::std::string& operation,
2137 const ::std::vector< ::Ice::Byte>& inParams)
2138 {
2139 return _iceI_begin_ice_invoke(operation, mode, inParams, ::Ice::noExplicitContext,
2140 ::IceInternal::dummyCallback, 0);
2141 }
2142
2151 ::Ice::AsyncResultPtr begin_ice_invoke(const ::std::string& operation,
2153 const ::std::vector< ::Ice::Byte>& inParams,
2154 const ::Ice::Context& context)
2155 {
2156 return _iceI_begin_ice_invoke(operation, mode, inParams, context, ::IceInternal::dummyCallback, 0);
2157 }
2158
2168 ::Ice::AsyncResultPtr begin_ice_invoke(const ::std::string& operation,
2170 const ::std::vector< ::Ice::Byte>& inParams,
2171 const ::Ice::CallbackPtr& cb,
2172 const ::Ice::LocalObjectPtr& cookie = 0)
2173 {
2174 return _iceI_begin_ice_invoke(operation, mode, inParams, ::Ice::noExplicitContext, cb, cookie);
2175 }
2176
2187 ::Ice::AsyncResultPtr begin_ice_invoke(const ::std::string& operation,
2189 const ::std::vector< ::Ice::Byte>& inParams,
2190 const ::Ice::Context& context,
2191 const ::Ice::CallbackPtr& cb,
2192 const ::Ice::LocalObjectPtr& cookie = 0)
2193 {
2194 return _iceI_begin_ice_invoke(operation, mode, inParams, context, cb, cookie);
2195 }
2196
2206 ::Ice::AsyncResultPtr begin_ice_invoke(const ::std::string& operation,
2208 const ::std::vector< ::Ice::Byte>& inParams,
2209 const ::Ice::Callback_Object_ice_invokePtr& cb,
2210 const ::Ice::LocalObjectPtr& cookie = 0)
2211 {
2212 return _iceI_begin_ice_invoke(operation, mode, inParams, ::Ice::noExplicitContext, cb, cookie);
2213 }
2214
2225 ::Ice::AsyncResultPtr begin_ice_invoke(const ::std::string& operation,
2227 const ::std::vector< ::Ice::Byte>& inParams,
2228 const ::Ice::Context& context,
2229 const ::Ice::Callback_Object_ice_invokePtr& cb,
2230 const ::Ice::LocalObjectPtr& cookie = 0)
2231 {
2232 return _iceI_begin_ice_invoke(operation, mode, inParams, context, cb, cookie);
2233 }
2234
2244 bool end_ice_invoke(::std::vector< ::Ice::Byte>& outParams, const ::Ice::AsyncResultPtr& result);
2245
2258 bool ice_invoke(const ::std::string& operation,
2260 const ::std::pair<const ::Ice::Byte*, const ::Ice::Byte*>& inParams,
2261 ::std::vector< ::Ice::Byte>& outParams,
2262 const ::Ice::Context& context = ::Ice::noExplicitContext)
2263 {
2264 return end_ice_invoke(outParams, _iceI_begin_ice_invoke(operation, mode, inParams, context,
2265 ::IceInternal::dummyCallback, 0, true));
2266 }
2267
2275 ::Ice::AsyncResultPtr begin_ice_invoke(const ::std::string& operation,
2277 const ::std::pair<const ::Ice::Byte*, const ::Ice::Byte*>& inParams)
2278 {
2279 return _iceI_begin_ice_invoke(operation, mode, inParams, ::Ice::noExplicitContext,
2280 ::IceInternal::dummyCallback, 0);
2281 }
2282
2292 ::Ice::AsyncResultPtr begin_ice_invoke(const ::std::string& operation,
2294 const ::std::pair<const ::Ice::Byte*, const ::Ice::Byte*>& inParams,
2295 const ::Ice::Context& context,
2296 const ::Ice::LocalObjectPtr& cookie = 0)
2297 {
2298 return _iceI_begin_ice_invoke(operation, mode, inParams, context, ::IceInternal::dummyCallback, cookie);
2299 }
2300
2310 ::Ice::AsyncResultPtr begin_ice_invoke(const ::std::string& operation,
2312 const ::std::pair<const ::Ice::Byte*, const ::Ice::Byte*>& inParams,
2313 const ::Ice::CallbackPtr& cb,
2314 const ::Ice::LocalObjectPtr& cookie = 0)
2315 {
2316 return _iceI_begin_ice_invoke(operation, mode, inParams, ::Ice::noExplicitContext, cb, cookie);
2317 }
2318
2329 ::Ice::AsyncResultPtr begin_ice_invoke(const ::std::string& operation,
2331 const ::std::pair<const ::Ice::Byte*, const ::Ice::Byte*>& inParams,
2332 const ::Ice::Context& context,
2333 const ::Ice::CallbackPtr& cb,
2334 const ::Ice::LocalObjectPtr& cookie = 0)
2335 {
2336 return _iceI_begin_ice_invoke(operation, mode, inParams, context, cb, cookie);
2337 }
2338
2348 ::Ice::AsyncResultPtr begin_ice_invoke(const ::std::string& operation,
2350 const ::std::pair<const ::Ice::Byte*, const ::Ice::Byte*>& inParams,
2351 const ::Ice::Callback_Object_ice_invokePtr& cb,
2352 const ::Ice::LocalObjectPtr& cookie = 0)
2353 {
2354 return _iceI_begin_ice_invoke(operation, mode, inParams, ::Ice::noExplicitContext, cb, cookie);
2355 }
2356
2367 ::Ice::AsyncResultPtr begin_ice_invoke(const ::std::string& operation,
2369 const ::std::pair<const ::Ice::Byte*, const ::Ice::Byte*>& inParams,
2370 const ::Ice::Context& context,
2371 const ::Ice::Callback_Object_ice_invokePtr& cb,
2372 const ::Ice::LocalObjectPtr& cookie = 0)
2373 {
2374 return _iceI_begin_ice_invoke(operation, mode, inParams, context, cb, cookie);
2375 }
2376
2378 bool _iceI_end_ice_invoke(::std::pair<const ::Ice::Byte*, const ::Ice::Byte*>&, const ::Ice::AsyncResultPtr&);
2380
2386
2392 ::Ice::ObjectPrx ice_identity(const ::Ice::Identity& id) const;
2393
2399
2405 ::Ice::ObjectPrx ice_context(const ::Ice::Context& context) const;
2406
2411 const ::std::string& ice_getFacet() const;
2412
2418 ::Ice::ObjectPrx ice_facet(const ::std::string& facet) const;
2419
2424 ::std::string ice_getAdapterId() const;
2425
2431 ::Ice::ObjectPrx ice_adapterId(const ::std::string& id) const;
2432
2438
2444 ::Ice::ObjectPrx ice_endpoints(const ::Ice::EndpointSeq& endpoints) const;
2445
2451
2458
2464
2471
2477
2484
2489 bool ice_isSecure() const;
2490
2498
2504
2511 ::Ice::ObjectPrx ice_encodingVersion(const ::Ice::EncodingVersion& version) const;
2512
2519
2528
2535
2541 ::Ice::ObjectPrx ice_router(const ::Ice::RouterPrx& router) const;
2542
2548
2554 ::Ice::ObjectPrx ice_locator(const ::Ice::LocatorPrx& locator) const;
2555
2561
2568
2574
2581
2587
2592 bool ice_isTwoway() const;
2593
2599
2604 bool ice_isOneway() const;
2605
2611
2616 bool ice_isBatchOneway() const;
2617
2623
2628 bool ice_isDatagram() const;
2629
2635
2641
2649
2656
2663 ::Ice::ObjectPrx ice_timeout(int timeout) const;
2664
2671
2678 ::Ice::ObjectPrx ice_connectionId(const ::std::string& id) const;
2679
2684 ::std::string ice_getConnectionId() const;
2685
2692 ::Ice::ObjectPrx ice_fixed(const ::Ice::ConnectionPtr& connection) const;
2693
2698 bool ice_isFixed() const;
2699
2709
2716 {
2717 return _iceI_begin_ice_getConnection(::IceInternal::dummyCallback, 0);
2718 }
2719
2728 const ::Ice::LocalObjectPtr& cookie = 0)
2729 {
2730 return _iceI_begin_ice_getConnection(cb, cookie);
2731 }
2732
2740 ::Ice::AsyncResultPtr begin_ice_getConnection(const ::Ice::Callback_Object_ice_getConnectionPtr& cb,
2741 const ::Ice::LocalObjectPtr& cookie = 0)
2742 {
2743 return _iceI_begin_ice_getConnection(cb, cookie);
2744 }
2745
2751 ::Ice::ConnectionPtr end_ice_getConnection(const ::Ice::AsyncResultPtr& result);
2752
2761
2769
2775 {
2776 return _iceI_begin_ice_flushBatchRequests(::IceInternal::dummyCallback, 0);
2777 }
2778
2786 const ::Ice::LocalObjectPtr& cookie = 0)
2787 {
2788 return _iceI_begin_ice_flushBatchRequests(cb, cookie);
2789 }
2790
2797 ::Ice::AsyncResultPtr begin_ice_flushBatchRequests(const ::Ice::Callback_Object_ice_flushBatchRequestsPtr& cb,
2798 const ::Ice::LocalObjectPtr& cookie = 0)
2799 {
2800 return _iceI_begin_ice_flushBatchRequests(cb, cookie);
2801 }
2802
2807 void end_ice_flushBatchRequests(const ::Ice::AsyncResultPtr& result);
2808
2810 const ::IceInternal::ReferencePtr& _getReference() const { return _reference; }
2811
2812 ::Ice::Int _hash() const;
2813
2814 void _copyFrom(const ::Ice::ObjectPrx&);
2815
2816 int _handleException(const ::Ice::Exception&, const ::IceInternal::RequestHandlerPtr&, ::Ice::OperationMode,
2817 bool, int&);
2818
2819 void _checkTwowayOnly(const ::std::string&, bool) const;
2820
2821 void _end(const ::Ice::AsyncResultPtr&, const std::string&) const;
2822
2823 ::IceInternal::RequestHandlerPtr _getRequestHandler();
2824 ::IceInternal::BatchRequestQueuePtr _getBatchRequestQueue();
2825 ::IceInternal::RequestHandlerPtr _setRequestHandler(const ::IceInternal::RequestHandlerPtr&);
2826 void _updateRequestHandler(const ::IceInternal::RequestHandlerPtr&, const ::IceInternal::RequestHandlerPtr&);
2827
2828 void _write(::Ice::OutputStream&) const;
2830
2831protected:
2832
2834 virtual Object* _newInstance() const;
2836
2837private:
2838
2839 ::Ice::AsyncResultPtr _iceI_begin_ice_isA(const ::std::string&,
2840 const ::Ice::Context&,
2841 const ::IceInternal::CallbackBasePtr&,
2842 const ::Ice::LocalObjectPtr&,
2843 bool = false);
2844
2845 ::Ice::AsyncResultPtr _iceI_begin_ice_ping(const ::Ice::Context&,
2846 const ::IceInternal::CallbackBasePtr&,
2847 const ::Ice::LocalObjectPtr&,
2848 bool = false);
2849
2850 ::Ice::AsyncResultPtr _iceI_begin_ice_ids(const ::Ice::Context&,
2851 const ::IceInternal::CallbackBasePtr&,
2852 const ::Ice::LocalObjectPtr&,
2853 bool = false);
2854
2855 ::Ice::AsyncResultPtr _iceI_begin_ice_id(const ::Ice::Context&,
2856 const ::IceInternal::CallbackBasePtr&,
2857 const ::Ice::LocalObjectPtr&,
2858 bool = false);
2859
2860 ::Ice::AsyncResultPtr _iceI_begin_ice_invoke(const ::std::string&,
2862 const ::std::vector< ::Ice::Byte>&,
2863 const ::Ice::Context&,
2864 const ::IceInternal::CallbackBasePtr&,
2865 const ::Ice::LocalObjectPtr&,
2866 bool = false);
2867
2868 ::Ice::AsyncResultPtr _iceI_begin_ice_invoke(const ::std::string&,
2870 const ::std::pair<const ::Ice::Byte*, const ::Ice::Byte*>&,
2871 const ::Ice::Context&,
2872 const ::IceInternal::CallbackBasePtr&,
2873 const ::Ice::LocalObjectPtr&,
2874 bool = false);
2875
2876 ::Ice::AsyncResultPtr _iceI_begin_ice_getConnection(const ::IceInternal::CallbackBasePtr&,
2877 const ::Ice::LocalObjectPtr&);
2878
2879 ::Ice::AsyncResultPtr _iceI_begin_ice_flushBatchRequests(const ::IceInternal::CallbackBasePtr&,
2880 const ::Ice::LocalObjectPtr&);
2881
2882 void setup(const ::IceInternal::ReferencePtr&);
2883 friend class ::IceInternal::ProxyFactory;
2884
2885 ::IceInternal::ReferencePtr _reference;
2886 ::IceInternal::RequestHandlerPtr _requestHandler;
2887 ::IceInternal::BatchRequestQueuePtr _batchRequestQueue;
2888 IceUtil::Mutex _mutex;
2889};
2890
2892
2893ICE_API ::std::ostream& operator<<(::std::ostream&, const ::IceProxy::Ice::Object&);
2894
2895namespace Ice
2896{
2897
2902template<typename Prx, typename Base>
2903class Proxy : public virtual Base
2904{
2905public:
2906
2912 IceInternal::ProxyHandle<Prx> ice_context(const ::Ice::Context& context) const
2913 {
2914 return dynamic_cast<Prx*>(::IceProxy::Ice::Object::ice_context(context).get());
2915 }
2916
2922 IceInternal::ProxyHandle<Prx> ice_adapterId(const ::std::string& id) const
2923 {
2924 return dynamic_cast<Prx*>(::IceProxy::Ice::Object::ice_adapterId(id).get());
2925 }
2926
2932 IceInternal::ProxyHandle<Prx> ice_endpoints(const ::Ice::EndpointSeq& endpoints) const
2933 {
2934 return dynamic_cast<Prx*>(::IceProxy::Ice::Object::ice_endpoints(endpoints).get());
2935 }
2936
2942 IceInternal::ProxyHandle<Prx> ice_locatorCacheTimeout(int timeout) const
2943 {
2944 return dynamic_cast<Prx*>(::IceProxy::Ice::Object::ice_locatorCacheTimeout(timeout).get());
2945 }
2946
2952 IceInternal::ProxyHandle<Prx> ice_connectionCached(bool b) const
2953 {
2954 return dynamic_cast<Prx*>(::IceProxy::Ice::Object::ice_connectionCached(b).get());
2955 }
2956
2962 IceInternal::ProxyHandle<Prx> ice_endpointSelection(::Ice::EndpointSelectionType type) const
2963 {
2964 return dynamic_cast<Prx*>(::IceProxy::Ice::Object::ice_endpointSelection(type).get());
2965 }
2966
2973 IceInternal::ProxyHandle<Prx> ice_secure(bool b) const
2974 {
2975 return dynamic_cast<Prx*>(::IceProxy::Ice::Object::ice_secure(b).get());
2976 }
2977
2985 IceInternal::ProxyHandle<Prx> ice_preferSecure(bool b) const
2986 {
2987 return dynamic_cast<Prx*>(::IceProxy::Ice::Object::ice_preferSecure(b).get());
2988 }
2989
2995 IceInternal::ProxyHandle<Prx> ice_router(const ::Ice::RouterPrx& router) const
2996 {
2997 return dynamic_cast<Prx*>(::IceProxy::Ice::Object::ice_router(router).get());
2998 }
2999
3005 IceInternal::ProxyHandle<Prx> ice_locator(const ::Ice::LocatorPrx& locator) const
3006 {
3007 return dynamic_cast<Prx*>(::IceProxy::Ice::Object::ice_locator(locator).get());
3008 }
3009
3015 IceInternal::ProxyHandle<Prx> ice_collocationOptimized(bool b) const
3016 {
3017 return dynamic_cast<Prx*>(::IceProxy::Ice::Object::ice_collocationOptimized(b).get());
3018 }
3019
3025 IceInternal::ProxyHandle<Prx> ice_invocationTimeout(int timeout) const
3026 {
3027 return dynamic_cast<Prx*>(::IceProxy::Ice::Object::ice_invocationTimeout(timeout).get());
3028 }
3029
3034 IceInternal::ProxyHandle<Prx> ice_twoway() const
3035 {
3036 return dynamic_cast<Prx*>(::IceProxy::Ice::Object::ice_twoway().get());
3037 }
3038
3043 IceInternal::ProxyHandle<Prx> ice_oneway() const
3044 {
3045 return dynamic_cast<Prx*>(::IceProxy::Ice::Object::ice_oneway().get());
3046 }
3047
3052 IceInternal::ProxyHandle<Prx> ice_batchOneway() const
3053 {
3054 return dynamic_cast<Prx*>(::IceProxy::Ice::Object::ice_batchOneway().get());
3055 }
3056
3061 IceInternal::ProxyHandle<Prx> ice_datagram() const
3062 {
3063 return dynamic_cast<Prx*>(::IceProxy::Ice::Object::ice_datagram().get());
3064 }
3065
3070 IceInternal::ProxyHandle<Prx> ice_batchDatagram() const
3071 {
3072 return dynamic_cast<Prx*>(::IceProxy::Ice::Object::ice_batchDatagram().get());
3073 }
3074
3081 IceInternal::ProxyHandle<Prx> ice_compress(bool b) const
3082 {
3083 return dynamic_cast<Prx*>(::IceProxy::Ice::Object::ice_compress(b).get());
3084 }
3085
3092 IceInternal::ProxyHandle<Prx> ice_timeout(int timeout) const
3093 {
3094 return dynamic_cast<Prx*>(::IceProxy::Ice::Object::ice_timeout(timeout).get());
3095 }
3096
3103 IceInternal::ProxyHandle<Prx> ice_connectionId(const ::std::string& id) const
3104 {
3105 return dynamic_cast<Prx*>(::IceProxy::Ice::Object::ice_connectionId(id).get());
3106 }
3107
3114 IceInternal::ProxyHandle<Prx> ice_fixed(const ::Ice::ConnectionPtr& connection) const
3115 {
3116 return dynamic_cast<Prx*>(::IceProxy::Ice::Object::ice_fixed(connection).get());
3117 }
3118
3125 IceInternal::ProxyHandle<Prx> ice_encodingVersion(const ::Ice::EncodingVersion& version) const
3126 {
3127 return dynamic_cast<Prx*>(::IceProxy::Ice::Object::ice_encodingVersion(version).get());
3128 }
3129
3130protected:
3131
3133 virtual ::IceProxy::Ice::Object* _newInstance() const = 0;
3135};
3136
3143ICE_API bool proxyIdentityLess(const ObjectPrx& lhs, const ObjectPrx& rhs);
3144
3151ICE_API bool proxyIdentityEqual(const ObjectPrx& lhs, const ObjectPrx& rhs);
3152
3161
3170
3171#ifdef __clang__
3172# pragma clang diagnostic push
3173# pragma clang diagnostic ignored "-Wdeprecated-declarations" // for std::binary_function below
3174#endif
3175
3182#if (ICE_CPLUSPLUS < 201703L)
3183 : std::binary_function<bool, ObjectPrx&, ObjectPrx&>
3184#endif
3185{
3186 bool operator()(const ObjectPrx& lhs, const ObjectPrx& rhs) const
3187 {
3188 return proxyIdentityLess(lhs, rhs);
3189 }
3190};
3191
3198#if (ICE_CPLUSPLUS < 201703L)
3199 : std::binary_function<bool, ObjectPrx&, ObjectPrx&>
3200#endif
3201{
3202 bool operator()(const ObjectPrx& lhs, const ObjectPrx& rhs) const
3203 {
3204 return proxyIdentityEqual(lhs, rhs);
3205 }
3206};
3207
3214#if (ICE_CPLUSPLUS < 201703L)
3215 : std::binary_function<bool, ObjectPrx&, ObjectPrx&>
3216#endif
3217{
3218 bool operator()(const ObjectPrx& lhs, const ObjectPrx& rhs) const
3219 {
3220 return proxyIdentityAndFacetLess(lhs, rhs);
3221 }
3222};
3223
3230#if (ICE_CPLUSPLUS < 201703L)
3231 : std::binary_function<bool, ObjectPrx&, ObjectPrx&>
3232#endif
3233{
3234 bool operator()(const ObjectPrx& lhs, const ObjectPrx& rhs) const
3235 {
3236 return proxyIdentityAndFacetEqual(lhs, rhs);
3237 }
3238};
3239
3240#ifdef __clang__
3241# pragma clang diagnostic pop
3242#endif
3243
3244}
3245
3246namespace IceInternal
3247{
3248
3249//
3250// Inline comparison functions for proxies
3251//
3252template<typename T, typename U>
3253inline bool operator==(const ProxyHandle<T>& lhs, const ProxyHandle<U>& rhs)
3254{
3255 ::IceProxy::Ice::Object* l = lhs._upCast();
3256 ::IceProxy::Ice::Object* r = rhs._upCast();
3257 if(l && r)
3258 {
3259 return *l == *r;
3260 }
3261 else
3262 {
3263 return !l && !r;
3264 }
3265}
3266
3267template<typename T, typename U>
3268inline bool operator!=(const ProxyHandle<T>& lhs, const ProxyHandle<U>& rhs)
3269{
3270 return !operator==(lhs, rhs);
3271}
3272
3273template<typename T, typename U>
3274inline bool operator<(const ProxyHandle<T>& lhs, const ProxyHandle<U>& rhs)
3275{
3276 ::IceProxy::Ice::Object* l = lhs._upCast();
3277 ::IceProxy::Ice::Object* r = rhs._upCast();
3278 if(l && r)
3279 {
3280 return *l < *r;
3281 }
3282 else
3283 {
3284 return !l && r;
3285 }
3286}
3287
3288template<typename T, typename U>
3289inline bool operator<=(const ProxyHandle<T>& lhs, const ProxyHandle<U>& rhs)
3290{
3291 return lhs < rhs || lhs == rhs;
3292}
3293
3294template<typename T, typename U>
3295inline bool operator>(const ProxyHandle<T>& lhs, const ProxyHandle<U>& rhs)
3296{
3297 return !(lhs < rhs || lhs == rhs);
3298}
3299
3300template<typename T, typename U>
3301inline bool operator>=(const ProxyHandle<T>& lhs, const ProxyHandle<U>& rhs)
3302{
3303 return !(lhs < rhs);
3304}
3305
3306//
3307// checkedCast and uncheckedCast functions without facet:
3308//
3309template<typename P> P
3310checkedCastImpl(const ::Ice::ObjectPrx& b, const ::Ice::Context& context)
3311{
3312 P d = 0;
3313 if(b.get())
3314 {
3315 typedef typename P::element_type T;
3316
3317 if(b->ice_isA(T::ice_staticId(), context))
3318 {
3319 d = new T;
3320 d->_copyFrom(b);
3321 }
3322 }
3323 return d;
3324}
3325
3326template<typename P> P
3327uncheckedCastImpl(const ::Ice::ObjectPrx& b)
3328{
3329 P d = 0;
3330 if(b)
3331 {
3332 typedef typename P::element_type T;
3333
3334 d = dynamic_cast<T*>(b.get());
3335 if(!d)
3336 {
3337 d = new T;
3338 d->_copyFrom(b);
3339 }
3340 }
3341 return d;
3342}
3343
3344//
3345// checkedCast and uncheckedCast with facet:
3346//
3347
3348//
3349// Helper with type ID.
3350//
3351ICE_API ::Ice::ObjectPrx checkedCastImpl(const ::Ice::ObjectPrx&, const std::string&, const std::string&,
3352 const ::Ice::Context&);
3353
3354//
3355// Specializations for P = ::Ice::ObjectPrx
3356// We have to use inline functions for broken compilers such as VC7.
3357//
3358
3359template<> inline ::Ice::ObjectPrx
3360checkedCastImpl< ::Ice::ObjectPrx>(const ::Ice::ObjectPrx& b, const std::string& f, const ::Ice::Context& context)
3361{
3362 return checkedCastImpl(b, f, "::Ice::Object", context);
3363}
3364
3365template<> inline ::Ice::ObjectPrx
3366uncheckedCastImpl< ::Ice::ObjectPrx>(const ::Ice::ObjectPrx& b, const std::string& f)
3367{
3368 ::Ice::ObjectPrx d = 0;
3369 if(b)
3370 {
3371 d = b->ice_facet(f);
3372 }
3373 return d;
3374}
3375
3376template<typename P> P
3377checkedCastImpl(const ::Ice::ObjectPrx& b, const std::string& f, const ::Ice::Context& context)
3378{
3379 P d = 0;
3380
3381 typedef typename P::element_type T;
3382 ::Ice::ObjectPrx bb = checkedCastImpl(b, f, T::ice_staticId(), context);
3383
3384 if(bb)
3385 {
3386 d = new T;
3387 d->_copyFrom(bb);
3388 }
3389 return d;
3390}
3391
3392template<typename P> P
3393uncheckedCastImpl(const ::Ice::ObjectPrx& b, const std::string& f)
3394{
3395 P d = 0;
3396 if(b)
3397 {
3398 typedef typename P::element_type T;
3399
3400 ::Ice::ObjectPrx bb = b->ice_facet(f);
3401 d = new T;
3402 d->_copyFrom(bb);
3403 }
3404 return d;
3405}
3406}
3407
3408//
3409// checkedCast and uncheckedCast functions provided in the Ice namespace
3410//
3411namespace Ice
3412{
3413
3421template<typename P, typename Y> inline P
3422checkedCast(const ::IceInternal::ProxyHandle<Y>& b, const ::Ice::Context& context = ::Ice::noExplicitContext)
3423{
3424 Y* tag = 0;
3425 return ::IceInternal::checkedCastHelper<typename P::element_type>(b, tag, context);
3426}
3427
3433template<typename P, typename Y> inline P
3434uncheckedCast(const ::IceInternal::ProxyHandle<Y>& b)
3435{
3436 Y* tag = 0;
3437 return ::IceInternal::uncheckedCastHelper<typename P::element_type>(b, tag);
3438}
3439
3448template<typename P> inline P
3449checkedCast(const ::Ice::ObjectPrx& b, const std::string& f, const ::Ice::Context& context = ::Ice::noExplicitContext)
3450{
3451 return ::IceInternal::checkedCastImpl<P>(b, f, context);
3452}
3453
3460template<typename P> inline P
3461uncheckedCast(const ::Ice::ObjectPrx& b, const std::string& f)
3462{
3463 return ::IceInternal::uncheckedCastImpl<P>(b, f);
3464}
3465
3466}
3467
3468namespace IceInternal
3469{
3470
3471//
3472// Base template for operation callbacks.
3473//
3474template<class T>
3475class CallbackNC : public virtual CallbackBase
3476{
3477public:
3478
3479 typedef T callback_type;
3480
3481 typedef IceUtil::Handle<T> TPtr;
3482
3483 typedef void (T::*Exception)(const ::Ice::Exception&);
3484 typedef void (T::*Sent)(bool);
3485
3486 CallbackNC(const TPtr& instance, Exception excb, Sent sentcb) : _callback(instance), _exception(excb), _sent(sentcb)
3487 {
3488 }
3489
3490 virtual CallbackBasePtr verify(const ::Ice::LocalObjectPtr& cookie)
3491 {
3492 if(cookie != 0) // Makes sure begin_ was called without a cookie
3493 {
3494 throw IceUtil::IllegalArgumentException(__FILE__, __LINE__, "cookie specified for callback without cookie");
3495 }
3496 return this;
3497 }
3498
3499 virtual void sent(const ::Ice::AsyncResultPtr& result) const
3500 {
3501 if(_sent)
3502 {
3503 (_callback.get()->*_sent)(result->sentSynchronously());
3504 }
3505 }
3506
3507 virtual bool hasSentCallback() const
3508 {
3509 return _sent != 0;
3510 }
3511
3512protected:
3513
3514 void exception(const ::Ice::AsyncResultPtr&, const ::Ice::Exception& ex) const
3515 {
3516 if(_exception)
3517 {
3518 (_callback.get()->*_exception)(ex);
3519 }
3520 }
3521
3522 TPtr _callback;
3523
3524private:
3525
3526 Exception _exception;
3527 Sent _sent;
3528};
3529
3530template<class T, typename CT>
3531class Callback : public virtual CallbackBase
3532{
3533public:
3534
3535 typedef T callback_type;
3536 typedef CT cookie_type;
3537
3538 typedef IceUtil::Handle<T> TPtr;
3539
3540 typedef void (T::*Exception)(const ::Ice::Exception&, const CT&);
3541 typedef void (T::*Sent)(bool, const CT&);
3542
3543 Callback(const TPtr& instance, Exception excb, Sent sentcb) : _callback(instance), _exception(excb), _sent(sentcb)
3544 {
3545 }
3546
3547 virtual CallbackBasePtr verify(const ::Ice::LocalObjectPtr& cookie)
3548 {
3549 if(cookie && !CT::dynamicCast(cookie))
3550 {
3551 throw IceUtil::IllegalArgumentException(__FILE__, __LINE__, "unexpected cookie type");
3552 }
3553 return this;
3554 }
3555
3556 virtual void sent(const ::Ice::AsyncResultPtr& result) const
3557 {
3558 if(_sent)
3559 {
3560 (_callback.get()->*_sent)(result->sentSynchronously(), CT::dynamicCast(result->getCookie()));
3561 }
3562 }
3563
3564 virtual bool hasSentCallback() const
3565 {
3566 return _sent != 0;
3567 }
3568
3569protected:
3570
3571 void exception(const ::Ice::AsyncResultPtr& result, const ::Ice::Exception& ex) const
3572 {
3573 if(_exception)
3574 {
3575 (_callback.get()->*_exception)(ex, CT::dynamicCast(result->getCookie()));
3576 }
3577 }
3578
3579 TPtr _callback;
3580
3581private:
3582
3583 Exception _exception;
3584 Sent _sent;
3585};
3586
3587//
3588// Base class for twoway operation callbacks.
3589//
3590template<class T>
3591class TwowayCallbackNC : public CallbackNC<T>
3592{
3593public:
3594
3595 typedef IceUtil::Handle<T> TPtr;
3596
3597 typedef void (T::*Exception)(const ::Ice::Exception&);
3598 typedef void (T::*Sent)(bool);
3599
3600 TwowayCallbackNC(const TPtr& instance, bool cb, Exception excb, Sent sentcb) : CallbackNC<T>(instance, excb, sentcb)
3601 {
3602 CallbackBase::checkCallback(instance, cb || excb != 0);
3603 }
3604};
3605
3606template<class T, typename CT>
3607class TwowayCallback : public Callback<T, CT>
3608{
3609public:
3610
3611 typedef IceUtil::Handle<T> TPtr;
3612
3613 typedef void (T::*Exception)(const ::Ice::Exception&, const CT&);
3614 typedef void (T::*Sent)(bool, const CT&);
3615
3616 TwowayCallback(const TPtr& instance, bool cb, Exception excb, Sent sentcb) : Callback<T, CT>(instance, excb, sentcb)
3617 {
3618 CallbackBase::checkCallback(instance, cb || excb != 0);
3619 }
3620};
3621
3622//
3623// Base template class for oneway operations callbacks.
3624//
3625template<class T>
3626class OnewayCallbackNC : public CallbackNC<T>
3627{
3628public:
3629
3630 typedef IceUtil::Handle<T> TPtr;
3631
3632 typedef void (T::*Exception)(const ::Ice::Exception&);
3633 typedef void (T::*Sent)(bool);
3634 typedef void (T::*Response)();
3635
3636 OnewayCallbackNC(const TPtr& instance, Response cb, Exception excb, Sent sentcb) :
3637 CallbackNC<T>(instance, excb, sentcb), _response(cb)
3638 {
3639 CallbackBase::checkCallback(instance, cb != 0 || excb != 0);
3640 }
3641
3642 virtual void completed(const ::Ice::AsyncResultPtr& result) const
3643 {
3644 try
3645 {
3646 result->getProxy()->_end(result, result->getOperation());
3647 }
3648 catch(const ::Ice::Exception& ex)
3649 {
3650 CallbackNC<T>::exception(result, ex);
3651 return;
3652 }
3653 if(_response)
3654 {
3655 (CallbackNC<T>::_callback.get()->*_response)();
3656 }
3657 }
3658
3659private:
3660
3661 Response _response;
3662};
3663
3664template<class T, typename CT>
3665class OnewayCallback : public Callback<T, CT>
3666{
3667public:
3668
3669 typedef IceUtil::Handle<T> TPtr;
3670
3671 typedef void (T::*Exception)(const ::Ice::Exception&, const CT&);
3672 typedef void (T::*Sent)(bool, const CT&);
3673 typedef void (T::*Response)(const CT&);
3674
3675 OnewayCallback(const TPtr& instance, Response cb, Exception excb, Sent sentcb) :
3676 Callback<T, CT>(instance, excb, sentcb), _response(cb)
3677 {
3678 CallbackBase::checkCallback(instance, cb != 0 || excb != 0);
3679 }
3680
3681 virtual void completed(const ::Ice::AsyncResultPtr& result) const
3682 {
3683 try
3684 {
3685 result->getProxy()->_end(result, result->getOperation());
3686 }
3687 catch(const ::Ice::Exception& ex)
3688 {
3689 Callback<T, CT>::exception(result, ex);
3690 return;
3691 }
3692 if(_response)
3693 {
3694 (Callback<T, CT>::_callback.get()->*_response)(CT::dynamicCast(result->getCookie()));
3695 }
3696 }
3697
3698private:
3699
3700 Response _response;
3701};
3702
3703}
3704
3705namespace Ice
3706{
3707
3714template<class T>
3715class CallbackNC_Object_ice_isA : public Callback_Object_ice_isA_Base, public ::IceInternal::TwowayCallbackNC<T>
3716{
3717public:
3718
3720
3721 typedef void (T::*Exception)(const ::Ice::Exception&);
3722 typedef void (T::*Sent)(bool);
3723 typedef void (T::*Response)(bool);
3724
3725 CallbackNC_Object_ice_isA(const TPtr& instance, Response cb, Exception excb, Sent sentcb) :
3726 ::IceInternal::TwowayCallbackNC<T>(instance, cb != 0, excb, sentcb), _response(cb)
3727 {
3728 }
3729
3731 virtual void completed(const ::Ice::AsyncResultPtr& result) const
3732 {
3733 bool ret;
3734 try
3735 {
3736 ret = result->getProxy()->end_ice_isA(result);
3737 }
3738 catch(const ::Ice::Exception& ex)
3739 {
3740 ::IceInternal::CallbackNC<T>::exception(result, ex);
3741 return;
3742 }
3743 if(_response)
3744 {
3745 (::IceInternal::CallbackNC<T>::_callback.get()->*_response)(ret);
3746 }
3747 }
3749
3750private:
3751
3752 Response _response;
3753};
3754
3761template<class T, typename CT>
3762class Callback_Object_ice_isA : public Callback_Object_ice_isA_Base, public ::IceInternal::TwowayCallback<T, CT>
3763{
3764public:
3765
3767
3768 typedef void (T::*Exception)(const ::Ice::Exception&, const CT&);
3769 typedef void (T::*Sent)(bool, const CT&);
3770 typedef void (T::*Response)(bool, const CT&);
3771
3772 Callback_Object_ice_isA(const TPtr& instance, Response cb, Exception excb, Sent sentcb) :
3773 ::IceInternal::TwowayCallback<T, CT>(instance, cb != 0, excb, sentcb), _response(cb)
3774 {
3775 }
3776
3778 virtual void completed(const ::Ice::AsyncResultPtr& result) const
3779 {
3780 bool ret;
3781 try
3782 {
3783 ret = result->getProxy()->end_ice_isA(result);
3784 }
3785 catch(const ::Ice::Exception& ex)
3786 {
3787 ::IceInternal::Callback<T, CT>::exception(result, ex);
3788 return;
3789 }
3790 if(_response)
3791 {
3792 (::IceInternal::Callback<T, CT>::_callback.get()->*_response)(ret,
3793 CT::dynamicCast(result->getCookie()));
3794 }
3795 }
3797
3798private:
3799
3800 Response _response;
3801};
3802
3809template<class T>
3810class CallbackNC_Object_ice_ping : public Callback_Object_ice_ping_Base, public ::IceInternal::OnewayCallbackNC<T>
3811{
3812public:
3813
3815
3816 typedef void (T::*Exception)(const ::Ice::Exception&);
3817 typedef void (T::*Sent)(bool);
3818 typedef void (T::*Response)();
3819
3820 CallbackNC_Object_ice_ping(const TPtr& instance, Response cb, Exception excb, Sent sentcb) :
3821 ::IceInternal::OnewayCallbackNC<T>(instance, cb, excb, sentcb)
3822 {
3823 }
3824};
3825
3832template<class T, typename CT>
3833class Callback_Object_ice_ping : public Callback_Object_ice_ping_Base, public ::IceInternal::OnewayCallback<T, CT>
3834{
3835public:
3836
3838
3839 typedef void (T::*Exception)(const ::Ice::Exception&, const CT&);
3840 typedef void (T::*Sent)(bool, const CT&);
3841 typedef void (T::*Response)(const CT&);
3842
3843 Callback_Object_ice_ping(const TPtr& instance, Response cb, Exception excb, Sent sentcb) :
3844 ::IceInternal::OnewayCallback<T, CT>(instance, cb, excb, sentcb)
3845 {
3846 }
3847};
3848
3855template<class T>
3856class CallbackNC_Object_ice_ids : public Callback_Object_ice_ids_Base, public ::IceInternal::TwowayCallbackNC<T>
3857{
3858public:
3859
3861
3862 typedef void (T::*Exception)(const ::Ice::Exception&);
3863 typedef void (T::*Sent)(bool);
3864 typedef void (T::*Response)(const ::std::vector< ::std::string>&);
3865
3866 CallbackNC_Object_ice_ids(const TPtr& instance, Response cb, Exception excb, Sent sentcb) :
3867 ::IceInternal::TwowayCallbackNC<T>(instance, cb != 0, excb, sentcb), _response(cb)
3868 {
3869 }
3870
3872 virtual void completed(const ::Ice::AsyncResultPtr& result) const
3873 {
3874 ::std::vector< ::std::string> ret;
3875 try
3876 {
3877 ret = result->getProxy()->end_ice_ids(result);
3878 }
3879 catch(const ::Ice::Exception& ex)
3880 {
3881 ::IceInternal::CallbackNC<T>::exception(result, ex);
3882 return;
3883 }
3884 if(_response)
3885 {
3886 (::IceInternal::CallbackNC<T>::_callback.get()->*_response)(ret);
3887 }
3888 }
3890
3891private:
3892
3893 Response _response;
3894};
3895
3902template<class T, typename CT>
3903class Callback_Object_ice_ids : public Callback_Object_ice_ids_Base, public ::IceInternal::TwowayCallback<T, CT>
3904{
3905public:
3906
3908
3909 typedef void (T::*Exception)(const ::Ice::Exception&, const CT&);
3910 typedef void (T::*Sent)(bool, const CT&);
3911 typedef void (T::*Response)(const ::std::vector< ::std::string>&, const CT&);
3912
3913 Callback_Object_ice_ids(const TPtr& instance, Response cb, Exception excb, Sent sentcb) :
3914 ::IceInternal::TwowayCallback<T, CT>(instance, cb != 0, excb, sentcb), _response(cb)
3915 {
3916 }
3917
3919 virtual void completed(const ::Ice::AsyncResultPtr& result) const
3920 {
3921 ::std::vector< ::std::string> ret;
3922 try
3923 {
3924 ret = result->getProxy()->end_ice_ids(result);
3925 }
3926 catch(const ::Ice::Exception& ex)
3927 {
3928 ::IceInternal::Callback<T, CT>::exception(result, ex);
3929 return;
3930 }
3931 if(_response)
3932 {
3933 (::IceInternal::Callback<T, CT>::_callback.get()->*_response)(ret,
3934 CT::dynamicCast(result->getCookie()));
3935 }
3936 }
3938
3939private:
3940
3941 Response _response;
3942};
3943
3950template<class T>
3951class CallbackNC_Object_ice_id : public Callback_Object_ice_id_Base, public ::IceInternal::TwowayCallbackNC<T>
3952{
3953public:
3954
3956
3957 typedef void (T::*Exception)(const ::Ice::Exception&);
3958 typedef void (T::*Sent)(bool);
3959 typedef void (T::*Response)(const ::std::string&);
3960
3961 CallbackNC_Object_ice_id(const TPtr& instance, Response cb, Exception excb, Sent sentcb) :
3962 ::IceInternal::TwowayCallbackNC<T>(instance, cb != 0, excb, sentcb), _response(cb)
3963 {
3964 }
3965
3967 virtual void completed(const ::Ice::AsyncResultPtr& result) const
3968 {
3969 ::std::string ret;
3970 try
3971 {
3972 ret = result->getProxy()->end_ice_id(result);
3973 }
3974 catch(const ::Ice::Exception& ex)
3975 {
3976 ::IceInternal::CallbackNC<T>::exception(result, ex);
3977 return;
3978 }
3979 if(_response)
3980 {
3981 (::IceInternal::CallbackNC<T>::_callback.get()->*_response)(ret);
3982 }
3983 }
3985
3986private:
3987
3988 Response _response;
3989};
3990
3997template<class T, typename CT>
3998class Callback_Object_ice_id : public Callback_Object_ice_id_Base, public ::IceInternal::TwowayCallback<T, CT>
3999{
4000public:
4001
4003
4004 typedef void (T::*Exception)(const ::Ice::Exception&, const CT&);
4005 typedef void (T::*Sent)(bool, const CT&);
4006 typedef void (T::*Response)(const ::std::string&, const CT&);
4007
4008 Callback_Object_ice_id(const TPtr& instance, Response cb, Exception excb, Sent sentcb) :
4009 ::IceInternal::TwowayCallback<T, CT>(instance, cb != 0, excb, sentcb), _response(cb)
4010 {
4011 }
4012
4014 virtual void completed(const ::Ice::AsyncResultPtr& result) const
4015 {
4016 ::std::string ret;
4017 try
4018 {
4019 ret = result->getProxy()->end_ice_id(result);
4020 }
4021 catch(const ::Ice::Exception& ex)
4022 {
4023 ::IceInternal::Callback<T, CT>::exception(result, ex);
4024 return;
4025 }
4026 if(_response)
4027 {
4028 (::IceInternal::Callback<T, CT>::_callback.get()->*_response)(ret,
4029 CT::dynamicCast(result->getCookie()));
4030 }
4031 }
4033
4034private:
4035
4036 Response _response;
4037};
4038
4045template<class T>
4046class CallbackNC_Object_ice_invoke : public Callback_Object_ice_invoke_Base, public ::IceInternal::TwowayCallbackNC<T>
4047{
4048public:
4049
4051
4052 typedef void (T::*Exception)(const ::Ice::Exception&);
4053 typedef void (T::*Sent)(bool);
4054 typedef void (T::*Response)(bool, const std::vector< ::Ice::Byte>&);
4055 typedef void (T::*ResponseArray)(bool, const std::pair<const ::Ice::Byte*, const ::Ice::Byte*>&);
4056
4057 CallbackNC_Object_ice_invoke(const TPtr& instance, Response cb, Exception excb, Sent sentcb) :
4058 ::IceInternal::TwowayCallbackNC<T>(instance, cb != 0, excb, sentcb), _response(cb), _responseArray(0)
4059 {
4060 }
4061
4062 CallbackNC_Object_ice_invoke(const TPtr& instance, ResponseArray cb, Exception excb, Sent sentcb) :
4063 ::IceInternal::TwowayCallbackNC<T>(instance, cb != 0, excb, sentcb), _response(0), _responseArray(cb)
4064 {
4065 }
4066
4068 virtual void completed(const ::Ice::AsyncResultPtr& result) const
4069 {
4070 if(_response)
4071 {
4072 bool ok;
4073 std::vector< ::Ice::Byte> outParams;
4074 try
4075 {
4076 ok = result->getProxy()->end_ice_invoke(outParams, result);
4077 }
4078 catch(const ::Ice::Exception& ex)
4079 {
4080 ::IceInternal::CallbackNC<T>::exception(result, ex);
4081 return;
4082 }
4083 (::IceInternal::CallbackNC<T>::_callback.get()->*_response)(ok, outParams);
4084 }
4085 else
4086 {
4087 bool ok;
4088 std::pair<const ::Ice::Byte*, const::Ice::Byte*> outParams;
4089 try
4090 {
4091 ok = result->getProxy()->_iceI_end_ice_invoke(outParams, result);
4092 }
4093 catch(const ::Ice::Exception& ex)
4094 {
4095 ::IceInternal::CallbackNC<T>::exception(result, ex);
4096 return;
4097 }
4098 if(_responseArray)
4099 {
4100 (::IceInternal::CallbackNC<T>::_callback.get()->*_responseArray)(ok, outParams);
4101 }
4102 }
4103 }
4105
4106private:
4107
4108 Response _response;
4109 ResponseArray _responseArray;
4110};
4111
4118template<class T, typename CT>
4119class Callback_Object_ice_invoke : public Callback_Object_ice_invoke_Base, public ::IceInternal::TwowayCallback<T, CT>
4120{
4121public:
4122
4124
4125 typedef void (T::*Exception)(const ::Ice::Exception&, const CT&);
4126 typedef void (T::*Sent)(bool, const CT&);
4127 typedef void (T::*Response)(bool, const std::vector< ::Ice::Byte>&, const CT&);
4128 typedef void (T::*ResponseArray)(bool, const std::pair<const ::Ice::Byte*, const ::Ice::Byte*>&, const CT&);
4129
4130 Callback_Object_ice_invoke(const TPtr& instance, Response cb, Exception excb, Sent sentcb) :
4131 ::IceInternal::TwowayCallback<T, CT>(instance, cb != 0, excb, sentcb), _response(cb), _responseArray(0)
4132 {
4133 }
4134
4135 Callback_Object_ice_invoke(const TPtr& instance, ResponseArray cb, Exception excb, Sent sentcb) :
4136 ::IceInternal::TwowayCallback<T, CT>(instance, cb != 0, excb, sentcb), _response(0), _responseArray(cb)
4137 {
4138 }
4139
4141 virtual void completed(const ::Ice::AsyncResultPtr& result) const
4142 {
4143 if(_response)
4144 {
4145 bool ok;
4146 std::vector< ::Ice::Byte> outParams;
4147 try
4148 {
4149 ok = result->getProxy()->end_ice_invoke(outParams, result);
4150 }
4151 catch(const ::Ice::Exception& ex)
4152 {
4153 ::IceInternal::Callback<T, CT>::exception(result, ex);
4154 return;
4155 }
4156 (::IceInternal::Callback<T, CT>::_callback.get()->*_response)(ok,
4157 outParams,
4158 CT::dynamicCast(result->getCookie()));
4159 }
4160 else
4161 {
4162 bool ok;
4163 std::pair<const ::Ice::Byte*, const::Ice::Byte*> outParams;
4164 try
4165 {
4166 ok = result->getProxy()->_iceI_end_ice_invoke(outParams, result);
4167 }
4168 catch(const ::Ice::Exception& ex)
4169 {
4170 ::IceInternal::Callback<T, CT>::exception(result, ex);
4171 return;
4172 }
4173 if(_responseArray)
4174 {
4175 (::IceInternal::Callback<T, CT>::_callback.get()->*_responseArray)(ok,
4176 outParams,
4177 CT::dynamicCast(
4178 result->getCookie()));
4179 }
4180 }
4181 }
4183
4184private:
4185
4186 Response _response;
4187 ResponseArray _responseArray;
4188};
4189
4196template<class T>
4198 public ::IceInternal::CallbackNC<T>
4199{
4200public:
4201
4203
4204 typedef void (T::*Response)(const ::Ice::ConnectionPtr&);
4205 typedef void (T::*Exception)(const ::Ice::Exception&);
4206 typedef void (T::*Sent)(bool);
4207
4209 ::IceInternal::CallbackNC<T>(instance, excb, sentcb), _response(cb)
4210 {
4211 }
4212
4214 virtual void completed(const ::Ice::AsyncResultPtr& result) const
4215 {
4217 try
4218 {
4219 ret = result->getProxy()->end_ice_getConnection(result);
4220 }
4221 catch(const ::Ice::Exception& ex)
4222 {
4223 ::IceInternal::CallbackNC<T>::exception(result, ex);
4224 return;
4225 }
4226 if(_response)
4227 {
4228 (::IceInternal::CallbackNC<T>::_callback.get()->*_response)(ret);
4229 }
4230 }
4232
4233private:
4234
4235 Response _response;
4236};
4237
4244template<class T, typename CT>
4246 public ::IceInternal::Callback<T, CT>
4247{
4248public:
4249
4251
4252 typedef void (T::*Response)(const ::Ice::ConnectionPtr&, const CT&);
4253 typedef void (T::*Exception)(const ::Ice::Exception&, const CT&);
4254 typedef void (T::*Sent)(bool, const CT&);
4255
4256 Callback_Object_ice_getConnection(const TPtr& instance, Response cb, Exception excb, Sent sentcb) :
4257 ::IceInternal::Callback<T, CT>(instance, excb, sentcb), _response(cb)
4258 {
4259 }
4260
4262 virtual void completed(const ::Ice::AsyncResultPtr& result) const
4263 {
4265 try
4266 {
4267 ret = result->getProxy()->end_ice_getConnection(result);
4268 }
4269 catch(const ::Ice::Exception& ex)
4270 {
4271 ::IceInternal::Callback<T, CT>::exception(result, ex);
4272 return;
4273 }
4274 if(_response)
4275 {
4276 (::IceInternal::Callback<T, CT>::_callback.get()->*_response)(ret,
4277 CT::dynamicCast(result->getCookie()));
4278 }
4279 }
4281
4282private:
4283
4284 Response _response;
4285};
4286
4293template<class T>
4295 public ::IceInternal::OnewayCallbackNC<T>
4296{
4297public:
4298
4300
4301 typedef void (T::*Exception)(const ::Ice::Exception&);
4302 typedef void (T::*Sent)(bool);
4303
4305 ::IceInternal::OnewayCallbackNC<T>(instance, 0, excb, sentcb)
4306 {
4307 }
4308};
4309
4316template<class T, typename CT>
4318 public ::IceInternal::OnewayCallback<T, CT>
4319{
4320public:
4321
4323
4324 typedef void (T::*Exception)(const ::Ice::Exception&, const CT&);
4325 typedef void (T::*Sent)(bool, const CT&);
4326
4328 ::IceInternal::OnewayCallback<T, CT>(instance, 0, excb, sentcb)
4329 {
4330 }
4331};
4332
4341template<class T> Callback_Object_ice_isAPtr
4343 void (T::*cb)(bool),
4344 void (T::*excb)(const ::Ice::Exception&),
4345 void (T::*sentcb)(bool) = 0)
4346{
4347 return new CallbackNC_Object_ice_isA<T>(instance, cb, excb, sentcb);
4348}
4349
4358template<class T, typename CT> Callback_Object_ice_isAPtr
4360 void (T::*cb)(bool, const CT&),
4361 void (T::*excb)(const ::Ice::Exception&, const CT&),
4362 void (T::*sentcb)(bool, const CT&) = 0)
4363{
4364 return new Callback_Object_ice_isA<T, CT>(instance, cb, excb, sentcb);
4365}
4366
4374template<class T> Callback_Object_ice_isAPtr
4376 void (T::*excb)(const ::Ice::Exception&),
4377 void (T::*sentcb)(bool) = 0)
4378{
4379 return new CallbackNC_Object_ice_isA<T>(instance, 0, excb, sentcb);
4380}
4381
4389template<class T, typename CT> Callback_Object_ice_isAPtr
4391 void (T::*excb)(const ::Ice::Exception&, const CT&),
4392 void (T::*sentcb)(bool, const CT&) = 0)
4393{
4394 return new Callback_Object_ice_isA<T, CT>(instance, 0, excb, sentcb);
4395}
4396
4405template<class T> Callback_Object_ice_isAPtr
4407 void (T::*cb)(bool),
4408 void (T::*excb)(const ::Ice::Exception&),
4409 void (T::*sentcb)(bool) = 0)
4410{
4411 return new CallbackNC_Object_ice_isA<T>(instance, cb, excb, sentcb);
4412}
4413
4422template<class T, typename CT> Callback_Object_ice_isAPtr
4424 void (T::*cb)(bool, const CT&),
4425 void (T::*excb)(const ::Ice::Exception&, const CT&),
4426 void (T::*sentcb)(bool, const CT&) = 0)
4427{
4428 return new Callback_Object_ice_isA<T, CT>(instance, cb, excb, sentcb);
4429}
4430
4438template<class T> Callback_Object_ice_isAPtr
4440 void (T::*excb)(const ::Ice::Exception&),
4441 void (T::*sentcb)(bool) = 0)
4442{
4443 return new CallbackNC_Object_ice_isA<T>(instance, 0, excb, sentcb);
4444}
4445
4453template<class T, typename CT> Callback_Object_ice_isAPtr
4455 void (T::*excb)(const ::Ice::Exception&, const CT&),
4456 void (T::*sentcb)(bool, const CT&) = 0)
4457{
4458 return new Callback_Object_ice_isA<T, CT>(instance, 0, excb, sentcb);
4459}
4460
4469template<class T> Callback_Object_ice_pingPtr
4471 void (T::*cb)(),
4472 void (T::*excb)(const ::Ice::Exception&),
4473 void (T::*sentcb)(bool) = 0)
4474{
4475 return new CallbackNC_Object_ice_ping<T>(instance, cb, excb, sentcb);
4476}
4477
4486template<class T, typename CT> Callback_Object_ice_pingPtr
4488 void (T::*cb)(const CT&),
4489 void (T::*excb)(const ::Ice::Exception&, const CT&),
4490 void (T::*sentcb)(bool, const CT&) = 0)
4491{
4492 return new Callback_Object_ice_ping<T, CT>(instance, cb, excb, sentcb);
4493}
4494
4502template<class T> Callback_Object_ice_pingPtr
4504 void (T::*excb)(const ::Ice::Exception&),
4505 void (T::*sentcb)(bool) = 0)
4506{
4507 return new CallbackNC_Object_ice_ping<T>(instance, 0, excb, sentcb);
4508}
4509
4517template<class T, typename CT> Callback_Object_ice_pingPtr
4519 void (T::*excb)(const ::Ice::Exception&, const CT&),
4520 void (T::*sentcb)(bool, const CT&) = 0)
4521{
4522 return new Callback_Object_ice_ping<T, CT>(instance, 0, excb, sentcb);
4523}
4524
4533template<class T> Callback_Object_ice_pingPtr
4535 void (T::*cb)(),
4536 void (T::*excb)(const ::Ice::Exception&),
4537 void (T::*sentcb)(bool) = 0)
4538{
4539 return new CallbackNC_Object_ice_ping<T>(instance, cb, excb, sentcb);
4540}
4541
4550template<class T, typename CT> Callback_Object_ice_pingPtr
4552 void (T::*cb)(const CT&),
4553 void (T::*excb)(const ::Ice::Exception&, const CT&),
4554 void (T::*sentcb)(bool, const CT&) = 0)
4555{
4556 return new Callback_Object_ice_ping<T, CT>(instance, cb, excb, sentcb);
4557}
4558
4566template<class T> Callback_Object_ice_pingPtr
4568 void (T::*excb)(const ::Ice::Exception&),
4569 void (T::*sentcb)(bool) = 0)
4570{
4571 return new CallbackNC_Object_ice_ping<T>(instance, 0, excb, sentcb);
4572}
4573
4581template<class T, typename CT> Callback_Object_ice_pingPtr
4583 void (T::*excb)(const ::Ice::Exception&, const CT&),
4584 void (T::*sentcb)(bool, const CT&) = 0)
4585{
4586 return new Callback_Object_ice_ping<T, CT>(instance, 0, excb, sentcb);
4587}
4588
4597template<class T> Callback_Object_ice_idsPtr
4599 void (T::*cb)(const ::std::vector< ::std::string>&),
4600 void (T::*excb)(const ::Ice::Exception&),
4601 void (T::*sentcb)(bool) = 0)
4602{
4603 return new CallbackNC_Object_ice_ids<T>(instance, cb, excb, sentcb);
4604}
4605
4614template<class T, typename CT> Callback_Object_ice_idsPtr
4616 void (T::*cb)(const ::std::vector< ::std::string>&, const CT&),
4617 void (T::*excb)(const ::Ice::Exception&, const CT&),
4618 void (T::*sentcb)(bool, const CT&) = 0)
4619{
4620 return new Callback_Object_ice_ids<T, CT>(instance, cb, excb, sentcb);
4621}
4622
4630template<class T> Callback_Object_ice_idsPtr
4632 void (T::*excb)(const ::Ice::Exception&),
4633 void (T::*sentcb)(bool) = 0)
4634{
4635 return new CallbackNC_Object_ice_ids<T>(instance, 0, excb, sentcb);
4636}
4637
4645template<class T, typename CT> Callback_Object_ice_idsPtr
4647 void (T::*excb)(const ::Ice::Exception&, const CT&),
4648 void (T::*sentcb)(bool, const CT&) = 0)
4649{
4650 return new Callback_Object_ice_ids<T, CT>(instance, 0, excb, sentcb);
4651}
4652
4661template<class T> Callback_Object_ice_idsPtr
4663 void (T::*cb)(const ::std::vector< ::std::string>&),
4664 void (T::*excb)(const ::Ice::Exception&),
4665 void (T::*sentcb)(bool) = 0)
4666{
4667 return new CallbackNC_Object_ice_ids<T>(instance, cb, excb, sentcb);
4668}
4669
4678template<class T, typename CT> Callback_Object_ice_idsPtr
4680 void (T::*cb)(const ::std::vector< ::std::string>&, const CT&),
4681 void (T::*excb)(const ::Ice::Exception&, const CT&),
4682 void (T::*sentcb)(bool, const CT&) = 0)
4683{
4684 return new Callback_Object_ice_ids<T, CT>(instance, cb, excb, sentcb);
4685}
4686
4694template<class T> Callback_Object_ice_idsPtr
4696 void (T::*excb)(const ::Ice::Exception&),
4697 void (T::*sentcb)(bool) = 0)
4698{
4699 return new CallbackNC_Object_ice_ids<T>(instance, 0, excb, sentcb);
4700}
4701
4709template<class T, typename CT> Callback_Object_ice_idsPtr
4711 void (T::*excb)(const ::Ice::Exception&, const CT&),
4712 void (T::*sentcb)(bool, const CT&) = 0)
4713{
4714 return new Callback_Object_ice_ids<T, CT>(instance, 0, excb, sentcb);
4715}
4716
4725template<class T> Callback_Object_ice_idPtr
4727 void (T::*cb)(const ::std::string&),
4728 void (T::*excb)(const ::Ice::Exception&),
4729 void (T::*sentcb)(bool) = 0)
4730{
4731 return new CallbackNC_Object_ice_id<T>(instance, cb, excb, sentcb);
4732}
4733
4742template<class T, typename CT> Callback_Object_ice_idPtr
4744 void (T::*cb)(const ::std::string&, const CT&),
4745 void (T::*excb)(const ::Ice::Exception&, const CT&),
4746 void (T::*sentcb)(bool, const CT&) = 0)
4747{
4748 return new Callback_Object_ice_id<T, CT>(instance, cb, excb, sentcb);
4749}
4750
4758template<class T> Callback_Object_ice_idPtr
4760 void (T::*excb)(const ::Ice::Exception&),
4761 void (T::*sentcb)(bool) = 0)
4762{
4763 return new CallbackNC_Object_ice_id<T>(instance, 0, excb, sentcb);
4764}
4765
4773template<class T, typename CT> Callback_Object_ice_idPtr
4775 void (T::*excb)(const ::Ice::Exception&, const CT&),
4776 void (T::*sentcb)(bool, const CT&) = 0)
4777{
4778 return new Callback_Object_ice_id<T, CT>(instance, 0, excb, sentcb);
4779}
4780
4789template<class T> Callback_Object_ice_idPtr
4791 void (T::*cb)(const ::std::string&),
4792 void (T::*excb)(const ::Ice::Exception&),
4793 void (T::*sentcb)(bool) = 0)
4794{
4795 return new CallbackNC_Object_ice_id<T>(instance, cb, excb, sentcb);
4796}
4797
4806template<class T, typename CT> Callback_Object_ice_idPtr
4808 void (T::*cb)(const ::std::string&, const CT&),
4809 void (T::*excb)(const ::Ice::Exception&, const CT&),
4810 void (T::*sentcb)(bool, const CT&) = 0)
4811{
4812 return new Callback_Object_ice_id<T, CT>(instance, cb, excb, sentcb);
4813}
4814
4822template<class T> Callback_Object_ice_idPtr
4824 void (T::*excb)(const ::Ice::Exception&),
4825 void (T::*sentcb)(bool) = 0)
4826{
4827 return new CallbackNC_Object_ice_id<T>(instance, 0, excb, sentcb);
4828}
4829
4837template<class T, typename CT> Callback_Object_ice_idPtr
4839 void (T::*excb)(const ::Ice::Exception&, const CT&),
4840 void (T::*sentcb)(bool, const CT&) = 0)
4841{
4842 return new Callback_Object_ice_id<T, CT>(instance, 0, excb, sentcb);
4843}
4844
4853template<class T> Callback_Object_ice_invokePtr
4855 void (T::*cb)(bool, const std::vector<Ice::Byte>&),
4856 void (T::*excb)(const ::Ice::Exception&),
4857 void (T::*sentcb)(bool) = 0)
4858{
4859 return new CallbackNC_Object_ice_invoke<T>(instance, cb, excb, sentcb);
4860}
4861
4870template<class T> Callback_Object_ice_invokePtr
4872 void (T::*cb)(bool, const std::pair<const Byte*, const Byte*>&),
4873 void (T::*excb)(const ::Ice::Exception&),
4874 void (T::*sentcb)(bool) = 0)
4875{
4876 return new CallbackNC_Object_ice_invoke<T>(instance, cb, excb, sentcb);
4877}
4878
4887template<class T, typename CT> Callback_Object_ice_invokePtr
4889 void (T::*cb)(bool, const std::vector<Ice::Byte>&, const CT&),
4890 void (T::*excb)(const ::Ice::Exception&, const CT&),
4891 void (T::*sentcb)(bool, const CT&) = 0)
4892{
4893 return new Callback_Object_ice_invoke<T, CT>(instance, cb, excb, sentcb);
4894}
4895
4904template<class T, typename CT> Callback_Object_ice_invokePtr
4906 void (T::*cb)(bool, const std::pair<const Byte*, const Byte*>&,
4907 const CT&),
4908 void (T::*excb)(const ::Ice::Exception&, const CT&),
4909 void (T::*sentcb)(bool, const CT&) = 0)
4910{
4911 return new Callback_Object_ice_invoke<T, CT>(instance, cb, excb, sentcb);
4912}
4913
4921template<class T> Callback_Object_ice_invokePtr
4923 void (T::*excb)(const ::Ice::Exception&),
4924 void (T::*sentcb)(bool) = 0)
4925{
4926 return new CallbackNC_Object_ice_invoke<T>(instance, 0, excb, sentcb);
4927}
4928
4936template<class T, typename CT> Callback_Object_ice_invokePtr
4938 void (T::*excb)(const ::Ice::Exception&, const CT&),
4939 void (T::*sentcb)(bool, const CT&) = 0)
4940{
4941 return new Callback_Object_ice_invoke<T, CT>(instance, 0, excb, sentcb);
4942}
4943
4952template<class T> Callback_Object_ice_invokePtr
4954 void (T::*cb)(bool, const std::vector<Ice::Byte>&),
4955 void (T::*excb)(const ::Ice::Exception&),
4956 void (T::*sentcb)(bool) = 0)
4957{
4958 return new CallbackNC_Object_ice_invoke<T>(instance, cb, excb, sentcb);
4959}
4960
4969template<class T> Callback_Object_ice_invokePtr
4971 void (T::*cb)(bool, const std::pair<const Byte*, const Byte*>&),
4972 void (T::*excb)(const ::Ice::Exception&),
4973 void (T::*sentcb)(bool) = 0)
4974{
4975 return new CallbackNC_Object_ice_invoke<T>(instance, cb, excb, sentcb);
4976}
4977
4986template<class T, typename CT> Callback_Object_ice_invokePtr
4988 void (T::*cb)(bool, const std::vector<Ice::Byte>&, const CT&),
4989 void (T::*excb)(const ::Ice::Exception&, const CT&),
4990 void (T::*sentcb)(bool, const CT&) = 0)
4991{
4992 return new Callback_Object_ice_invoke<T, CT>(instance, cb, excb, sentcb);
4993}
4994
5003template<class T, typename CT> Callback_Object_ice_invokePtr
5005 void (T::*cb)(bool, const std::pair<const Byte*, const Byte*>&, const CT&),
5006 void (T::*excb)(const ::Ice::Exception&, const CT&),
5007 void (T::*sentcb)(bool, const CT&) = 0)
5008{
5009 return new Callback_Object_ice_invoke<T, CT>(instance, cb, excb, sentcb);
5010}
5011
5019template<class T> Callback_Object_ice_invokePtr
5021 void (T::*excb)(const ::Ice::Exception&),
5022 void (T::*sentcb)(bool) = 0)
5023{
5025 instance, static_cast<void (T::*)(bool, const std::vector<Ice::Byte>&)>(0), excb, sentcb);
5026}
5027
5035template<class T, typename CT> Callback_Object_ice_invokePtr
5037 void (T::*excb)(const ::Ice::Exception&, const CT&),
5038 void (T::*sentcb)(bool, const CT&) = 0)
5039{
5041 instance, static_cast<void (T::*)(bool, const std::vector<Ice::Byte>&, const CT&)>(0), excb, sentcb);
5042}
5043
5053 void (T::*cb)(const ::Ice::ConnectionPtr&),
5054 void (T::*excb)(const ::Ice::Exception&))
5055{
5056 return new CallbackNC_Object_ice_getConnection<T>(instance, cb, excb, 0);
5057}
5058
5066template<class T, typename CT> Callback_Object_ice_getConnectionPtr
5068 void (T::*cb)(const ::Ice::ConnectionPtr&, const CT&),
5069 void (T::*excb)(const ::Ice::Exception&, const CT&))
5070{
5071 return new Callback_Object_ice_getConnection<T, CT>(instance, cb, excb, 0);
5072}
5073
5083 void (T::*cb)(const ::Ice::ConnectionPtr&),
5084 void (T::*excb)(const ::Ice::Exception&))
5085{
5086 return new CallbackNC_Object_ice_getConnection<T>(instance, cb, excb, 0);
5087}
5088
5096template<class T, typename CT> Callback_Object_ice_getConnectionPtr
5098 void (T::*cb)(const ::Ice::ConnectionPtr&, const CT&),
5099 void (T::*excb)(const ::Ice::Exception&, const CT&))
5100{
5101 return new Callback_Object_ice_getConnection<T, CT>(instance, cb, excb, 0);
5102}
5103
5114 void (T::*excb)(const ::Ice::Exception&),
5115 void (T::*sentcb)(bool) = 0)
5116{
5117 return new CallbackNC_Object_ice_flushBatchRequests<T>(instance, excb, sentcb);
5118}
5119
5128template<class T, typename CT> Callback_Object_ice_flushBatchRequestsPtr
5130 void (T::*excb)(const ::Ice::Exception&, const CT&),
5131 void (T::*sentcb)(bool, const CT&) = 0)
5132{
5133 return new Callback_Object_ice_flushBatchRequests<T, CT>(instance, excb, sentcb);
5134}
5135
5146 void (T::*excb)(const ::Ice::Exception&),
5147 void (T::*sentcb)(bool) = 0)
5148{
5149 return new CallbackNC_Object_ice_flushBatchRequests<T>(instance, excb, sentcb);
5150}
5151
5160template<class T, typename CT> Callback_Object_ice_flushBatchRequestsPtr
5162 void (T::*excb)(const ::Ice::Exception&, const CT&),
5163 void (T::*sentcb)(bool, const CT&) = 0)
5164{
5165 return new Callback_Object_ice_flushBatchRequests<T, CT>(instance, excb, sentcb);
5166}
5167
5168}
5169#endif
5170
5171#endif
#define ICE_API
Definition Config.h:197
#define ICE_CPLUSPLUS
Definition Config.h:101
::std::ostream & operator<<(::std::ostream &, const ::IceProxy::Ice::Object &)
Definition Locator.h:1545
Base class of all object proxies.
Definition Proxy.h:1757
bool ice_isBatchOneway() const
Determines whether this proxy uses batch oneway invocations.
::Ice::AsyncResultPtr begin_ice_invoke(const ::std::string &operation, ::Ice::OperationMode mode, const ::std::pair< const ::Ice::Byte *, const ::Ice::Byte * > &inParams, const ::Ice::CallbackPtr &cb, const ::Ice::LocalObjectPtr &cookie=0)
Invokes an operation dynamically.
Definition Proxy.h:2310
::Ice::ObjectPrx ice_batchDatagram() const
Obtains a proxy that is identical to this proxy, but uses batch datagram invocations.
::Ice::Int ice_getInvocationTimeout() const
Obtains the invocation timeout of this proxy.
::Ice::ObjectPrx ice_facet(const ::std::string &facet) const
Obtains a proxy that is identical to this proxy, except for the facet.
::Ice::EncodingVersion ice_getEncodingVersion() const
Obtains the encoding version used to marshal request parameters.
::Ice::AsyncResultPtr begin_ice_ids(const ::Ice::Context &context, const ::Ice::CallbackPtr &cb, const ::Ice::LocalObjectPtr &cookie=0)
Returns the Slice type IDs of the interfaces supported by the target object of this proxy.
Definition Proxy.h:1981
bool ice_isSecure() const
Determines whether this proxy uses only secure endpoints.
bool end_ice_isA(const ::Ice::AsyncResultPtr &result)
Completes an invocation of begin_ice_isA.
::std::string ice_getAdapterId() const
Obtains the adapter ID for this proxy.
bool ice_invoke(const ::std::string &operation, ::Ice::OperationMode mode, const ::std::vector< ::Ice::Byte > &inParams, ::std::vector< ::Ice::Byte > &outParams, const ::Ice::Context &context=::Ice::noExplicitContext)
Invokes an operation dynamically.
::Ice::ObjectPrx ice_connectionCached(bool b) const
Obtains a proxy that is identical to this proxy, except for connection caching.
bool ice_isFixed() const
Determines whether this proxy is a fixed proxy.
::Ice::ObjectPrx ice_endpoints(const ::Ice::EndpointSeq &endpoints) const
Obtains a proxy that is identical to this proxy, except for the endpoints.
::Ice::AsyncResultPtr begin_ice_invoke(const ::std::string &operation, ::Ice::OperationMode mode, const ::std::vector< ::Ice::Byte > &inParams, const ::Ice::CallbackPtr &cb, const ::Ice::LocalObjectPtr &cookie=0)
Invokes an operation dynamically.
Definition Proxy.h:2168
::Ice::ObjectPrx ice_locator(const ::Ice::LocatorPrx &locator) const
Obtains a proxy that is identical to this proxy, except for the locator.
const ::std::string & ice_getFacet() const
Obtains the facet for this proxy.
::std::vector< ::std::string > ice_ids(const ::Ice::Context &context=::Ice::noExplicitContext)
Returns the Slice type IDs of the interfaces supported by the target object of this proxy.
Definition Proxy.h:1947
::Ice::AsyncResultPtr begin_ice_ping(const ::Ice::Context &context=::Ice::noExplicitContext)
Tests whether the target object of this proxy can be reached.
Definition Proxy.h:1881
::Ice::AsyncResultPtr begin_ice_id(const ::Ice::Context &context, const ::Ice::CallbackPtr &cb, const ::Ice::LocalObjectPtr &cookie=0)
Returns the Slice type ID of the most-derived interface supported by the target object of this proxy.
Definition Proxy.h:2061
::Ice::ObjectPrx ice_encodingVersion(const ::Ice::EncodingVersion &version) const
Obtains a proxy that is identical to this proxy, except for the encoding used to marshal parameters.
::Ice::ObjectPrx ice_twoway() const
Obtains a proxy that is identical to this proxy, but uses twoway invocations.
::IceUtil::Optional< bool > ice_getCompress() const
Obtains the compression override setting of this proxy.
bool operator<(const Object &) const
::Ice::AsyncResultPtr begin_ice_flushBatchRequests(const ::Ice::Callback_Object_ice_flushBatchRequestsPtr &cb, const ::Ice::LocalObjectPtr &cookie=0)
Flushes asynchronously any pending batched requests for this proxy.
Definition Proxy.h:2797
::Ice::Int ice_getLocatorCacheTimeout() const
Obtains the locator cache timeout of this proxy.
::Ice::AsyncResultPtr begin_ice_invoke(const ::std::string &operation, ::Ice::OperationMode mode, const ::std::vector< ::Ice::Byte > &inParams, const ::Ice::Context &context)
Invokes an operation dynamically.
Definition Proxy.h:2151
::Ice::Identity ice_getIdentity() const
Obtains the identity embedded in this proxy.
::Ice::AsyncResultPtr begin_ice_invoke(const ::std::string &operation, ::Ice::OperationMode mode, const ::std::vector< ::Ice::Byte > &inParams, const ::Ice::Callback_Object_ice_invokePtr &cb, const ::Ice::LocalObjectPtr &cookie=0)
Invokes an operation dynamically.
Definition Proxy.h:2206
::Ice::AsyncResultPtr begin_ice_ping(const ::Ice::Context &context, const ::Ice::CallbackPtr &cb, const ::Ice::LocalObjectPtr &cookie=0)
Tests whether the target object of this proxy can be reached.
Definition Proxy.h:1904
::IceUtil::Optional< int > ice_getTimeout() const
Obtains the timeout override of this proxy.
::Ice::ObjectPrx ice_router(const ::Ice::RouterPrx &router) const
Obtains a proxy that is identical to this proxy, except for the router.
void end_ice_ping(const ::Ice::AsyncResultPtr &result)
Completes an invocation of begin_ice_ping.
::Ice::AsyncResultPtr begin_ice_isA(const ::std::string &typeId, const ::Ice::CallbackPtr &cb, const ::Ice::LocalObjectPtr &cookie=0)
Tests whether this object supports a specific Slice interface.
Definition Proxy.h:1806
::Ice::ObjectPrx ice_invocationTimeout(::Ice::Int timeout) const
Obtains a proxy that is identical to this proxy, except for the invocation timeout.
bool ice_isA(const ::std::string &typeId, const ::Ice::Context &context=::Ice::noExplicitContext)
Tests whether this object supports a specific Slice interface.
Definition Proxy.h:1782
::Ice::AsyncResultPtr begin_ice_ids(const ::Ice::Context &context=::Ice::noExplicitContext)
Returns the Slice type IDs of the interfaces supported by the target object of this proxy.
Definition Proxy.h:1957
::Ice::AsyncResultPtr begin_ice_invoke(const ::std::string &operation, ::Ice::OperationMode mode, const ::std::pair< const ::Ice::Byte *, const ::Ice::Byte * > &inParams, const ::Ice::Context &context, const ::Ice::CallbackPtr &cb, const ::Ice::LocalObjectPtr &cookie=0)
Invokes an operation dynamically.
Definition Proxy.h:2329
::Ice::ObjectPrx ice_datagram() const
Obtains a proxy that is identical to this proxy, but uses datagram invocations.
::Ice::Context ice_getContext() const
Obtains the per-proxy context for this proxy.
::Ice::ObjectPrx ice_timeout(int timeout) const
Obtains a proxy that is identical to this proxy, except for its connection timeout setting which over...
bool ice_isPreferSecure() const
Determines whether this proxy prefers secure endpoints.
::Ice::ConnectionPtr ice_getConnection()
Obtains the Connection for this proxy.
Definition Proxy.h:2705
::std::string ice_getConnectionId() const
Obtains the connection ID of this proxy.
::Ice::AsyncResultPtr begin_ice_ping(const ::Ice::Callback_Object_ice_pingPtr &cb, const ::Ice::LocalObjectPtr &cookie=0)
Tests whether the target object of this proxy can be reached.
Definition Proxy.h:1916
::Ice::LocatorPrx ice_getLocator() const
Obtains the locator for this proxy.
::Ice::ObjectPrx ice_context(const ::Ice::Context &context) const
Obtains a proxy that is identical to this proxy, except for the per-proxy context.
::Ice::AsyncResultPtr begin_ice_id(const ::Ice::Context &context=::Ice::noExplicitContext)
Returns the Slice type ID of the most-derived interface supported by the target object of this proxy.
Definition Proxy.h:2037
::Ice::AsyncResultPtr begin_ice_invoke(const ::std::string &operation, ::Ice::OperationMode mode, const ::std::pair< const ::Ice::Byte *, const ::Ice::Byte * > &inParams)
Invokes an operation dynamically.
Definition Proxy.h:2275
bool ice_isConnectionCached() const
Determines whether this proxy caches connections.
::Ice::AsyncResultPtr begin_ice_invoke(const ::std::string &operation, ::Ice::OperationMode mode, const ::std::pair< const ::Ice::Byte *, const ::Ice::Byte * > &inParams, const ::Ice::Context &context, const ::Ice::LocalObjectPtr &cookie=0)
Invokes an operation dynamically.
Definition Proxy.h:2292
bool ice_isOneway() const
Determines whether this proxy uses oneway invocations.
::Ice::ObjectPrx ice_locatorCacheTimeout(::Ice::Int timeout) const
Obtains a proxy that is identical to this proxy, except for the locator cache timeout.
::Ice::AsyncResultPtr begin_ice_getConnection(const ::Ice::Callback_Object_ice_getConnectionPtr &cb, const ::Ice::LocalObjectPtr &cookie=0)
Obtains the Connection for this proxy.
Definition Proxy.h:2740
bool operator==(const Object &) const
bool ice_invoke(const ::std::string &operation, ::Ice::OperationMode mode, const ::std::pair< const ::Ice::Byte *, const ::Ice::Byte * > &inParams, ::std::vector< ::Ice::Byte > &outParams, const ::Ice::Context &context=::Ice::noExplicitContext)
Invokes an operation dynamically.
Definition Proxy.h:2258
::Ice::AsyncResultPtr begin_ice_ids(const ::Ice::Callback_Object_ice_idsPtr &cb, const ::Ice::LocalObjectPtr &cookie=0)
Returns the Slice type IDs of the interfaces supported by the target object of this proxy.
Definition Proxy.h:1994
bool ice_isCollocationOptimized() const
Determines whether this proxy uses collocation optimization.
::Ice::AsyncResultPtr begin_ice_invoke(const ::std::string &operation, ::Ice::OperationMode mode, const ::std::pair< const ::Ice::Byte *, const ::Ice::Byte * > &inParams, const ::Ice::Callback_Object_ice_invokePtr &cb, const ::Ice::LocalObjectPtr &cookie=0)
Invokes an operation dynamically.
Definition Proxy.h:2348
::Ice::ObjectPrx ice_collocationOptimized(bool b) const
Obtains a proxy that is identical to this proxy, except for collocation optimization.
::Ice::AsyncResultPtr begin_ice_isA(const ::std::string &typeId, const ::Ice::Context &context, const ::Ice::CallbackPtr &cb, const ::Ice::LocalObjectPtr &cookie=0)
Tests whether this object supports a specific Slice interface.
Definition Proxy.h:1821
::Ice::ObjectPrx ice_secure(bool b) const
Obtains a proxy that is identical to this proxy, except for how it selects endpoints.
::Ice::AsyncResultPtr begin_ice_ping(const ::Ice::CallbackPtr &cb, const ::Ice::LocalObjectPtr &cookie=0)
Tests whether the target object of this proxy can be reached.
Definition Proxy.h:1892
bool ice_isDatagram() const
Determines whether this proxy uses datagram invocations.
::Ice::AsyncResultPtr begin_ice_invoke(const ::std::string &operation, ::Ice::OperationMode mode, const ::std::vector< ::Ice::Byte > &inParams, const ::Ice::Context &context, const ::Ice::CallbackPtr &cb, const ::Ice::LocalObjectPtr &cookie=0)
Invokes an operation dynamically.
Definition Proxy.h:2187
::std::string end_ice_id(const ::Ice::AsyncResultPtr &result)
Completes an invocation of begin_ice_id.
::Ice::AsyncResultPtr begin_ice_ping(const ::Ice::Context &context, const ::Ice::Callback_Object_ice_pingPtr &cb, const ::Ice::LocalObjectPtr &cookie=0)
Tests whether the target object of this proxy can be reached.
Definition Proxy.h:1929
::Ice::AsyncResultPtr begin_ice_flushBatchRequests()
Flushes asynchronously any pending batched requests for this proxy.
Definition Proxy.h:2774
::Ice::ObjectPrx ice_oneway() const
Obtains a proxy that is identical to this proxy, but uses oneway invocations.
::Ice::AsyncResultPtr begin_ice_getConnection()
Obtains the Connection for this proxy.
Definition Proxy.h:2715
void ice_flushBatchRequests()
Flushes any pending batched requests for this proxy.
Definition Proxy.h:2765
::Ice::EndpointSelectionType ice_getEndpointSelection() const
Obtains the endpoint selection policy for this proxy (randomly or ordered).
static const ::std::string & ice_staticId()
Returns the Slice type ID associated with this type.
Definition Proxy.h:2105
::Ice::AsyncResultPtr begin_ice_invoke(const ::std::string &operation, ::Ice::OperationMode mode, const ::std::vector< ::Ice::Byte > &inParams, const ::Ice::Context &context, const ::Ice::Callback_Object_ice_invokePtr &cb, const ::Ice::LocalObjectPtr &cookie=0)
Invokes an operation dynamically.
Definition Proxy.h:2225
bool ice_isBatchDatagram() const
Determines whether this proxy uses batch datagram invocations.
::Ice::ObjectPrx ice_connectionId(const ::std::string &id) const
Obtains a proxy that is identical to this proxy, except for its connection ID.
void end_ice_flushBatchRequests(const ::Ice::AsyncResultPtr &result)
Completes an invocation of begin_ice_flushBatchRequests.
::Ice::CommunicatorPtr ice_getCommunicator() const
Obtains the communicator that created this proxy.
void ice_ping(const ::Ice::Context &context=::Ice::noExplicitContext)
Tests whether the target object of this proxy can be reached.
Definition Proxy.h:1871
::Ice::ObjectPrx ice_fixed(const ::Ice::ConnectionPtr &connection) const
Obtains a proxy that is identical to this proxy, except it's a fixed proxy bound the given connection...
::Ice::ObjectPrx ice_endpointSelection(::Ice::EndpointSelectionType type) const
Obtains a proxy that is identical to this proxy, except for the endpoint selection policy.
::Ice::AsyncResultPtr begin_ice_isA(const ::std::string &typeId, const ::Ice::Context &context=::Ice::noExplicitContext)
Tests whether this object supports a specific Slice interface.
Definition Proxy.h:1793
::Ice::ObjectPrx ice_preferSecure(bool b) const
Obtains a proxy that is identical to this proxy, except for its endpoint selection policy.
::Ice::ConnectionPtr end_ice_getConnection(const ::Ice::AsyncResultPtr &result)
Completes an invocation of begin_ice_getConnection.
::Ice::AsyncResultPtr begin_ice_id(const ::Ice::Callback_Object_ice_idPtr &cb, const ::Ice::LocalObjectPtr &cookie=0)
Returns the Slice type ID of the most-derived interface supported by the target object of this proxy.
Definition Proxy.h:2074
::Ice::AsyncResultPtr begin_ice_isA(const ::std::string &typeId, const ::Ice::Callback_Object_ice_isAPtr &cb, const ::Ice::LocalObjectPtr &cookie=0)
Tests whether this object supports a specific Slice interface.
Definition Proxy.h:1836
::std::string ice_id(const ::Ice::Context &context=::Ice::noExplicitContext)
Returns the Slice type ID of the most-derived interface supported by the target object of this proxy.
Definition Proxy.h:2027
::Ice::AsyncResultPtr begin_ice_getConnection(const ::Ice::CallbackPtr &cb, const ::Ice::LocalObjectPtr &cookie=0)
Obtains the Connection for this proxy.
Definition Proxy.h:2727
::std::vector< ::std::string > end_ice_ids(const ::Ice::AsyncResultPtr &result)
Completes an invocation of begin_ice_ids.
::Ice::EndpointSeq ice_getEndpoints() const
Obtains the endpoints used by this proxy.
::Ice::AsyncResultPtr begin_ice_id(const ::Ice::Context &context, const ::Ice::Callback_Object_ice_idPtr &cb, const ::Ice::LocalObjectPtr &cookie=0)
Returns the Slice type ID of the most-derived interface supported by the target object of this proxy.
Definition Proxy.h:2087
::Ice::AsyncResultPtr begin_ice_id(const ::Ice::CallbackPtr &cb, const ::Ice::LocalObjectPtr &cookie=0)
Returns the Slice type ID of the most-derived interface supported by the target object of this proxy.
Definition Proxy.h:2048
::Ice::AsyncResultPtr begin_ice_ids(const ::Ice::CallbackPtr &cb, const ::Ice::LocalObjectPtr &cookie=0)
Returns the Slice type IDs of the interfaces supported by the target object of this proxy.
Definition Proxy.h:1968
::Ice::AsyncResultPtr begin_ice_invoke(const ::std::string &operation, ::Ice::OperationMode mode, const ::std::vector< ::Ice::Byte > &inParams)
Invokes an operation dynamically.
Definition Proxy.h:2135
bool end_ice_invoke(::std::vector< ::Ice::Byte > &outParams, const ::Ice::AsyncResultPtr &result)
Invokes an operation dynamically.
::Ice::ObjectPrx ice_batchOneway() const
Obtains a proxy that is identical to this proxy, but uses batch oneway invocations.
::Ice::RouterPrx ice_getRouter() const
Obtains the router for this proxy.
bool ice_isTwoway() const
Determines whether this proxy uses twoway invocations.
::Ice::ObjectPrx ice_compress(bool b) const
Obtains a proxy that is identical to this proxy, except for its compression setting which overrides t...
::std::string ice_toString() const
Obtains a stringified version of this proxy.
::Ice::AsyncResultPtr begin_ice_invoke(const ::std::string &operation, ::Ice::OperationMode mode, const ::std::pair< const ::Ice::Byte *, const ::Ice::Byte * > &inParams, const ::Ice::Context &context, const ::Ice::Callback_Object_ice_invokePtr &cb, const ::Ice::LocalObjectPtr &cookie=0)
Invokes an operation dynamically.
Definition Proxy.h:2367
::Ice::ObjectPrx ice_adapterId(const ::std::string &id) const
Obtains a proxy that is identical to this proxy, except for the adapter ID.
::Ice::AsyncResultPtr begin_ice_ids(const ::Ice::Context &context, const ::Ice::Callback_Object_ice_idsPtr &cb, const ::Ice::LocalObjectPtr &cookie=0)
Returns the Slice type IDs of the interfaces supported by the target object of this proxy.
Definition Proxy.h:2007
::Ice::ConnectionPtr ice_getCachedConnection() const
Returns the cached connection for this proxy.
::Ice::AsyncResultPtr begin_ice_isA(const ::std::string &typeId, const ::Ice::Context &context, const ::Ice::Callback_Object_ice_isAPtr &cb, const ::Ice::LocalObjectPtr &cookie=0)
Tests whether this object supports a specific Slice interface.
Definition Proxy.h:1851
::Ice::ObjectPrx ice_identity(const ::Ice::Identity &id) const
Obtains a proxy that is identical to this proxy, except for the identity.
::Ice::AsyncResultPtr begin_ice_flushBatchRequests(const ::Ice::CallbackPtr &cb, const ::Ice::LocalObjectPtr &cookie=0)
Flushes asynchronously any pending batched requests for this proxy.
Definition Proxy.h:2785
Definition Router.h:611
T * get() const
Definition Handle.h:25
Definition Handle.h:143
Definition Mutex.h:33
Encapsulates an optional value, which may or may not be present.
Definition Optional.h:30
Definition Shared.h:78
Type-safe asynchronous callback wrapper class used for calls to IceProxy::Ice::Object::begin_ice_flus...
Definition Proxy.h:4296
void(T::* Exception)(const ::Ice::Exception &)
Definition Proxy.h:4301
IceUtil::Handle< T > TPtr
Definition Proxy.h:4299
void(T::* Sent)(bool)
Definition Proxy.h:4302
CallbackNC_Object_ice_flushBatchRequests(const TPtr &instance, Exception excb, Sent sentcb)
Definition Proxy.h:4304
Type-safe asynchronous callback wrapper class used for calls to IceProxy::Ice::Object::begin_ice_getC...
Definition Proxy.h:4199
void(T::* Exception)(const ::Ice::Exception &)
Definition Proxy.h:4205
void(T::* Sent)(bool)
Definition Proxy.h:4206
IceUtil::Handle< T > TPtr
Definition Proxy.h:4202
void(T::* Response)(const ::Ice::ConnectionPtr &)
Definition Proxy.h:4204
CallbackNC_Object_ice_getConnection(const TPtr &instance, Response cb, Exception excb, Sent sentcb)
Definition Proxy.h:4208
Type-safe asynchronous callback wrapper class used for calls to IceProxy::Ice::Object::begin_ice_id.
Definition Proxy.h:3952
void(T::* Response)(const ::std::string &)
Definition Proxy.h:3959
void(T::* Exception)(const ::Ice::Exception &)
Definition Proxy.h:3957
CallbackNC_Object_ice_id(const TPtr &instance, Response cb, Exception excb, Sent sentcb)
Definition Proxy.h:3961
void(T::* Sent)(bool)
Definition Proxy.h:3958
IceUtil::Handle< T > TPtr
Definition Proxy.h:3955
Type-safe asynchronous callback wrapper class used for calls to IceProxy::Ice::Object::begin_ice_ids.
Definition Proxy.h:3857
void(T::* Response)(const ::std::vector< ::std::string > &)
Definition Proxy.h:3864
void(T::* Exception)(const ::Ice::Exception &)
Definition Proxy.h:3862
void(T::* Sent)(bool)
Definition Proxy.h:3863
IceUtil::Handle< T > TPtr
Definition Proxy.h:3860
CallbackNC_Object_ice_ids(const TPtr &instance, Response cb, Exception excb, Sent sentcb)
Definition Proxy.h:3866
Type-safe asynchronous callback wrapper class used for calls to IceProxy::Ice::Object::begin_ice_invo...
Definition Proxy.h:4047
CallbackNC_Object_ice_invoke(const TPtr &instance, Response cb, Exception excb, Sent sentcb)
Definition Proxy.h:4057
void(T::* Sent)(bool)
Definition Proxy.h:4053
void(T::* Response)(bool, const std::vector< ::Ice::Byte > &)
Definition Proxy.h:4054
void(T::* ResponseArray)(bool, const std::pair< const ::Ice::Byte *, const ::Ice::Byte * > &)
Definition Proxy.h:4055
void(T::* Exception)(const ::Ice::Exception &)
Definition Proxy.h:4052
IceUtil::Handle< T > TPtr
Definition Proxy.h:4050
CallbackNC_Object_ice_invoke(const TPtr &instance, ResponseArray cb, Exception excb, Sent sentcb)
Definition Proxy.h:4062
Type-safe asynchronous callback wrapper class used for calls to IceProxy::Ice::Object::begin_ice_isA.
Definition Proxy.h:3716
IceUtil::Handle< T > TPtr
Definition Proxy.h:3719
CallbackNC_Object_ice_isA(const TPtr &instance, Response cb, Exception excb, Sent sentcb)
Definition Proxy.h:3725
void(T::* Sent)(bool)
Definition Proxy.h:3722
void(T::* Exception)(const ::Ice::Exception &)
Definition Proxy.h:3721
void(T::* Response)(bool)
Definition Proxy.h:3723
Type-safe asynchronous callback wrapper class used for calls to IceProxy::Ice::Object::begin_ice_ping...
Definition Proxy.h:3811
void(T::* Response)()
Definition Proxy.h:3818
void(T::* Exception)(const ::Ice::Exception &)
Definition Proxy.h:3816
CallbackNC_Object_ice_ping(const TPtr &instance, Response cb, Exception excb, Sent sentcb)
Definition Proxy.h:3820
IceUtil::Handle< T > TPtr
Definition Proxy.h:3814
void(T::* Sent)(bool)
Definition Proxy.h:3817
Base class for asynchronous callback wrapper classes used for calls to IceProxy::Ice::Object::begin_i...
Definition Proxy.h:1735
Type-safe asynchronous callback wrapper class with cookie support used for calls to IceProxy::Ice::Ob...
Definition Proxy.h:4319
void(T::* Sent)(bool, const CT &)
Definition Proxy.h:4325
IceUtil::Handle< T > TPtr
Definition Proxy.h:4322
void(T::* Exception)(const ::Ice::Exception &, const CT &)
Definition Proxy.h:4324
Callback_Object_ice_flushBatchRequests(const TPtr &instance, Exception excb, Sent sentcb)
Definition Proxy.h:4327
Base class for asynchronous callback wrapper classes used for calls to IceProxy::Ice::Object::begin_i...
Definition Proxy.h:1744
Type-safe asynchronous callback wrapper class with cookie support used for calls to IceProxy::Ice::Ob...
Definition Proxy.h:4247
IceUtil::Handle< T > TPtr
Definition Proxy.h:4250
void(T::* Exception)(const ::Ice::Exception &, const CT &)
Definition Proxy.h:4253
void(T::* Sent)(bool, const CT &)
Definition Proxy.h:4254
Callback_Object_ice_getConnection(const TPtr &instance, Response cb, Exception excb, Sent sentcb)
Definition Proxy.h:4256
void(T::* Response)(const ::Ice::ConnectionPtr &, const CT &)
Definition Proxy.h:4252
Base class for asynchronous callback wrapper classes used for calls to IceProxy::Ice::Object::begin_i...
Definition Proxy.h:1717
Type-safe asynchronous callback wrapper class with cookie support used for calls to IceProxy::Ice::Ob...
Definition Proxy.h:3999
Callback_Object_ice_id(const TPtr &instance, Response cb, Exception excb, Sent sentcb)
Definition Proxy.h:4008
void(T::* Exception)(const ::Ice::Exception &, const CT &)
Definition Proxy.h:4004
void(T::* Response)(const ::std::string &, const CT &)
Definition Proxy.h:4006
void(T::* Sent)(bool, const CT &)
Definition Proxy.h:4005
IceUtil::Handle< T > TPtr
Definition Proxy.h:4002
Base class for asynchronous callback wrapper classes used for calls to IceProxy::Ice::Object::begin_i...
Definition Proxy.h:1708
Type-safe asynchronous callback wrapper class with cookie support used for calls to IceProxy::Ice::Ob...
Definition Proxy.h:3904
void(T::* Exception)(const ::Ice::Exception &, const CT &)
Definition Proxy.h:3909
void(T::* Sent)(bool, const CT &)
Definition Proxy.h:3910
void(T::* Response)(const ::std::vector< ::std::string > &, const CT &)
Definition Proxy.h:3911
IceUtil::Handle< T > TPtr
Definition Proxy.h:3907
Callback_Object_ice_ids(const TPtr &instance, Response cb, Exception excb, Sent sentcb)
Definition Proxy.h:3913
Base class for asynchronous callback wrapper classes used for calls to IceProxy::Ice::Object::begin_i...
Definition Proxy.h:1726
Type-safe asynchronous callback wrapper class with cookie support used for calls to IceProxy::Ice::Ob...
Definition Proxy.h:4120
Callback_Object_ice_invoke(const TPtr &instance, Response cb, Exception excb, Sent sentcb)
Definition Proxy.h:4130
void(T::* ResponseArray)(bool, const std::pair< const ::Ice::Byte *, const ::Ice::Byte * > &, const CT &)
Definition Proxy.h:4128
void(T::* Sent)(bool, const CT &)
Definition Proxy.h:4126
void(T::* Response)(bool, const std::vector< ::Ice::Byte > &, const CT &)
Definition Proxy.h:4127
Callback_Object_ice_invoke(const TPtr &instance, ResponseArray cb, Exception excb, Sent sentcb)
Definition Proxy.h:4135
void(T::* Exception)(const ::Ice::Exception &, const CT &)
Definition Proxy.h:4125
IceUtil::Handle< T > TPtr
Definition Proxy.h:4123
Base class for asynchronous callback wrapper classes used for calls to IceProxy::Ice::Object::begin_i...
Definition Proxy.h:1690
Type-safe asynchronous callback wrapper class with cookie support used for calls to IceProxy::Ice::Ob...
Definition Proxy.h:3763
IceUtil::Handle< T > TPtr
Definition Proxy.h:3766
void(T::* Response)(bool, const CT &)
Definition Proxy.h:3770
Callback_Object_ice_isA(const TPtr &instance, Response cb, Exception excb, Sent sentcb)
Definition Proxy.h:3772
void(T::* Sent)(bool, const CT &)
Definition Proxy.h:3769
void(T::* Exception)(const ::Ice::Exception &, const CT &)
Definition Proxy.h:3768
Base class for asynchronous callback wrapper classes used for calls to IceProxy::Ice::Object::begin_i...
Definition Proxy.h:1699
Type-safe asynchronous callback wrapper class with cookie support used for calls to IceProxy::Ice::Ob...
Definition Proxy.h:3834
void(T::* Sent)(bool, const CT &)
Definition Proxy.h:3840
Callback_Object_ice_ping(const TPtr &instance, Response cb, Exception excb, Sent sentcb)
Definition Proxy.h:3843
IceUtil::Handle< T > TPtr
Definition Proxy.h:3837
void(T::* Exception)(const ::Ice::Exception &, const CT &)
Definition Proxy.h:3839
void(T::* Response)(const CT &)
Definition Proxy.h:3841
Base class for all Ice run-time exceptions.
Definition Exception.h:29
Interface for output streams used to create a sequence of bytes from Slice types.
Definition OutputStream.h:28
Helper template that supplies proxy factory functions.
Definition Proxy.h:2904
IceInternal::ProxyHandle< Prx > ice_fixed(const ::Ice::ConnectionPtr &connection) const
Obtains a proxy that is identical to this proxy, except it's a fixed proxy bound the given connection...
Definition Proxy.h:3114
IceInternal::ProxyHandle< Prx > ice_timeout(int timeout) const
Obtains a proxy that is identical to this proxy, except for its connection timeout setting which over...
Definition Proxy.h:3092
IceInternal::ProxyHandle< Prx > ice_locator(const ::Ice::LocatorPrx &locator) const
Obtains a proxy that is identical to this proxy, except for the locator.
Definition Proxy.h:3005
IceInternal::ProxyHandle< Prx > ice_batchDatagram() const
Obtains a proxy that is identical to this proxy, but uses batch datagram invocations.
Definition Proxy.h:3070
IceInternal::ProxyHandle< Prx > ice_connectionId(const ::std::string &id) const
Obtains a proxy that is identical to this proxy, except for its connection ID.
Definition Proxy.h:3103
IceInternal::ProxyHandle< Prx > ice_connectionCached(bool b) const
Obtains a proxy that is identical to this proxy, except for connection caching.
Definition Proxy.h:2952
IceInternal::ProxyHandle< Prx > ice_preferSecure(bool b) const
Obtains a proxy that is identical to this proxy, except for its endpoint selection policy.
Definition Proxy.h:2985
IceInternal::ProxyHandle< Prx > ice_endpointSelection(::Ice::EndpointSelectionType type) const
Obtains a proxy that is identical to this proxy, except for the endpoint selection policy.
Definition Proxy.h:2962
IceInternal::ProxyHandle< Prx > ice_context(const ::Ice::Context &context) const
Obtains a proxy that is identical to this proxy, except for the per-proxy context.
Definition Proxy.h:2912
IceInternal::ProxyHandle< Prx > ice_twoway() const
Obtains a proxy that is identical to this proxy, but uses twoway invocations.
Definition Proxy.h:3034
IceInternal::ProxyHandle< Prx > ice_endpoints(const ::Ice::EndpointSeq &endpoints) const
Obtains a proxy that is identical to this proxy, except for the endpoints.
Definition Proxy.h:2932
IceInternal::ProxyHandle< Prx > ice_datagram() const
Obtains a proxy that is identical to this proxy, but uses datagram invocations.
Definition Proxy.h:3061
IceInternal::ProxyHandle< Prx > ice_router(const ::Ice::RouterPrx &router) const
Obtains a proxy that is identical to this proxy, except for the router.
Definition Proxy.h:2995
IceInternal::ProxyHandle< Prx > ice_invocationTimeout(int timeout) const
Obtains a proxy that is identical to this proxy, except for the invocation timeout.
Definition Proxy.h:3025
IceInternal::ProxyHandle< Prx > ice_secure(bool b) const
Obtains a proxy that is identical to this proxy, except for how it selects endpoints.
Definition Proxy.h:2973
IceInternal::ProxyHandle< Prx > ice_encodingVersion(const ::Ice::EncodingVersion &version) const
Obtains a proxy that is identical to this proxy, except for the encoding used to marshal parameters.
Definition Proxy.h:3125
IceInternal::ProxyHandle< Prx > ice_compress(bool b) const
Obtains a proxy that is identical to this proxy, except for its compression setting which overrides t...
Definition Proxy.h:3081
IceInternal::ProxyHandle< Prx > ice_oneway() const
Obtains a proxy that is identical to this proxy, but uses oneway invocations.
Definition Proxy.h:3043
IceInternal::ProxyHandle< Prx > ice_adapterId(const ::std::string &id) const
Obtains a proxy that is identical to this proxy, except for the adapter ID.
Definition Proxy.h:2922
IceInternal::ProxyHandle< Prx > ice_batchOneway() const
Obtains a proxy that is identical to this proxy, but uses batch oneway invocations.
Definition Proxy.h:3052
IceInternal::ProxyHandle< Prx > ice_collocationOptimized(bool b) const
Obtains a proxy that is identical to this proxy, except for collocation optimization.
Definition Proxy.h:3015
IceInternal::ProxyHandle< Prx > ice_locatorCacheTimeout(int timeout) const
Obtains a proxy that is identical to this proxy, except for the locator cache timeout.
Definition Proxy.h:2942
Definition Locator.h:1000
Object * upCast(Object *o)
Definition ProxyF.h:38
Definition Metrics.h:211
Definition BuiltinSequences.h:113
::IceUtil::Handle< Callback_Object_ice_flushBatchRequests_Base > Callback_Object_ice_flushBatchRequestsPtr
Definition Proxy.h:1736
OperationMode
Determines the retry behavior an invocation in case of a (potentially) recoverable error.
Definition Current.h:213
bool proxyIdentityAndFacetEqual(const ObjectPrx &lhs, const ObjectPrx &rhs)
Compares the object identities and facets of two proxies.
const Context noExplicitContext
Marker value used to indicate that no explicit context was passed to a proxy invocation.
Definition ProxyHandle.h:51
int Int
The mapping for the Slice int type.
Definition Config.h:54
::std::map< ::std::string, ::std::string > Context
A request context.
Definition Current.h:207
Callback_Object_ice_isAPtr newCallback_Object_ice_isA(const IceUtil::Handle< T > &instance, void(T::*cb)(bool), void(T::*excb)(const ::Ice::Exception &), void(T::*sentcb)(bool)=0)
Creates a callback wrapper instance that delegates to your object.
Definition Proxy.h:4342
IceInternal::ProxyHandle< ::IceProxy::Ice::Object > ObjectPrx
Smart pointer for an object proxy.
Definition ProxyF.h:47
::IceUtil::Handle< Callback_Object_ice_ping_Base > Callback_Object_ice_pingPtr
Definition Proxy.h:1700
::IceUtil::Handle< Callback_Object_ice_isA_Base > Callback_Object_ice_isAPtr
Definition Proxy.h:1691
EndpointSelectionType
Determines the order in which the Ice run time uses the endpoints in a proxy when establishing a conn...
Definition EndpointTypes.h:94
::IceUtil::Handle< Callback_Object_ice_invoke_Base > Callback_Object_ice_invokePtr
Definition Proxy.h:1727
Callback_Object_ice_idPtr newCallback_Object_ice_id(const IceUtil::Handle< T > &instance, void(T::*cb)(const ::std::string &), void(T::*excb)(const ::Ice::Exception &), void(T::*sentcb)(bool)=0)
Creates a callback wrapper instance that delegates to your object.
Definition Proxy.h:4726
Callback_Object_ice_idsPtr newCallback_Object_ice_ids(const IceUtil::Handle< T > &instance, void(T::*cb)(const ::std::vector< ::std::string > &), void(T::*excb)(const ::Ice::Exception &), void(T::*sentcb)(bool)=0)
Creates a callback wrapper instance that delegates to your object.
Definition Proxy.h:4598
bool proxyIdentityEqual(const ObjectPrx &lhs, const ObjectPrx &rhs)
Compares the object identities of two proxies.
Callback_Object_ice_invokePtr newCallback_Object_ice_invoke(const IceUtil::Handle< T > &instance, void(T::*cb)(bool, const std::vector< Ice::Byte > &), void(T::*excb)(const ::Ice::Exception &), void(T::*sentcb)(bool)=0)
Creates a callback wrapper instance that delegates to your object.
Definition Proxy.h:4854
::IceUtil::Handle< Callback_Object_ice_ids_Base > Callback_Object_ice_idsPtr
Definition Proxy.h:1709
::IceInternal::Handle< Connection > ConnectionPtr
Definition Connection.h:767
Callback_Object_ice_flushBatchRequestsPtr newCallback_Object_ice_flushBatchRequests(const IceUtil::Handle< T > &instance, void(T::*excb)(const ::Ice::Exception &), void(T::*sentcb)(bool)=0)
Creates a callback wrapper instance that delegates to your object.
Definition Proxy.h:5113
P checkedCast(const ::IceInternal::ProxyHandle< Y > &b, const ::Ice::Context &context=::Ice::noExplicitContext)
Downcasts a proxy after confirming the target object's type via a remote invocation.
Definition Proxy.h:3422
LocatorPrx LocatorPrxPtr
Definition Locator.h:1044
::std::vector< Byte > ByteSeq
A sequence of bytes.
Definition BuiltinSequences.h:123
bool proxyIdentityAndFacetLess(const ObjectPrx &lhs, const ObjectPrx &rhs)
Compares the object identities and facets of two proxies.
bool proxyIdentityLess(const ObjectPrx &lhs, const ObjectPrx &rhs)
Compares the object identities of two proxies.
::IceUtil::Handle< Callback_Object_ice_getConnection_Base > Callback_Object_ice_getConnectionPtr
Definition Proxy.h:1745
Callback_Object_ice_getConnectionPtr newCallback_Object_ice_getConnection(const IceUtil::Handle< T > &instance, void(T::*cb)(const ::Ice::ConnectionPtr &), void(T::*excb)(const ::Ice::Exception &))
Creates a callback wrapper instance that delegates to your object.
Definition Proxy.h:5052
unsigned char Byte
The mapping for the Slice byte type.
Definition Config.h:50
::IceInternal::ProxyHandle< ::IceProxy::Ice::Router > RouterPrx
Definition Router.h:548
IceInternal::Handle< AsyncResult > AsyncResultPtr
Definition AsyncResultF.h:18
::std::vector< EndpointPtr > EndpointSeq
A sequence of endpoints.
Definition EndpointF.h:152
RouterPrx RouterPrxPtr
Definition Router.h:549
std::ostream & operator<<(std::ostream &out, const ProtocolVersion &version)
Definition Protocol.h:179
::IceInternal::Handle< Communicator > CommunicatorPtr
Definition Communicator.h:608
::IceInternal::ProxyHandle< ::IceProxy::Ice::Locator > LocatorPrx
Definition Locator.h:1043
::IceUtil::Handle< Callback_Object_ice_id_Base > Callback_Object_ice_idPtr
Definition Proxy.h:1718
IceUtil::Exception Exception
Definition Exception.h:22
P uncheckedCast(const ::IceInternal::ProxyHandle< Y > &b)
Downcasts a proxy without confirming the target object's type via a remote invocation.
Definition Proxy.h:3434
ObjectPrx ObjectPrxPtr
Definition ProxyF.h:48
Callback_Object_ice_pingPtr newCallback_Object_ice_ping(const IceUtil::Handle< T > &instance, void(T::*cb)(), void(T::*excb)(const ::Ice::Exception &), void(T::*sentcb)(bool)=0)
Creates a callback wrapper instance that delegates to your object.
Definition Proxy.h:4470
A version structure for the encoding version.
Definition Version.h:225
The identity of an Ice object.
Definition Identity.h:144
A functor that compares the object identities and facets of two proxies.
Definition Proxy.h:3233
bool operator()(const ObjectPrx &lhs, const ObjectPrx &rhs) const
Definition Proxy.h:3234
A functor that compares the object identities and facets of two proxies.
Definition Proxy.h:3217
bool operator()(const ObjectPrx &lhs, const ObjectPrx &rhs) const
Definition Proxy.h:3218
A functor that compares the object identities of two proxies.
Definition Proxy.h:3201
bool operator()(const ObjectPrx &lhs, const ObjectPrx &rhs) const
Definition Proxy.h:3202
A functor that compares the object identities of two proxies.
Definition Proxy.h:3185
bool operator()(const ObjectPrx &lhs, const ObjectPrx &rhs) const
Definition Proxy.h:3186