diff options
author | Mark Spruiell <mes@zeroc.com> | 2017-01-30 13:45:21 -0800 |
---|---|---|
committer | Mark Spruiell <mes@zeroc.com> | 2017-01-30 13:45:21 -0800 |
commit | 61270a10f980933cf582edb766f10c8ac6d86e8a (patch) | |
tree | 45ab4a7c2986954054fce613bc3c8f7967e7951e /cpp/include/Ice/ConnectionAsync.h | |
parent | Fix slice2cpp build failure (diff) | |
download | ice-61270a10f980933cf582edb766f10c8ac6d86e8a.tar.bz2 ice-61270a10f980933cf582edb766f10c8ac6d86e8a.tar.xz ice-61270a10f980933cf582edb766f10c8ac6d86e8a.zip |
merging IceBridge into master
Diffstat (limited to 'cpp/include/Ice/ConnectionAsync.h')
-rw-r--r-- | cpp/include/Ice/ConnectionAsync.h | 93 |
1 files changed, 93 insertions, 0 deletions
diff --git a/cpp/include/Ice/ConnectionAsync.h b/cpp/include/Ice/ConnectionAsync.h index bc3f6064525..58f54cc3492 100644 --- a/cpp/include/Ice/ConnectionAsync.h +++ b/cpp/include/Ice/ConnectionAsync.h @@ -112,6 +112,99 @@ newCallback_Connection_flushBatchRequests(T* instance, void (T::*excb)(const ::I return new Callback_Connection_flushBatchRequests<T, CT>(instance, excb, sentcb); } +template<class T> +class CallbackNC_Connection_heartbeat : public Callback_Connection_heartbeat_Base, + public ::IceInternal::OnewayCallbackNC<T> +{ +public: + + typedef IceUtil::Handle<T> TPtr; + + typedef void (T::*Exception)(const ::Ice::Exception&); + typedef void (T::*Sent)(bool); + + CallbackNC_Connection_heartbeat(const TPtr& obj, Exception excb, Sent sentcb) + : ::IceInternal::OnewayCallbackNC<T>(obj, 0, excb, sentcb) + { + } + + virtual void completed(const ::Ice::AsyncResultPtr& __result) const + { + ::Ice::ConnectionPtr __con = __result->getConnection(); + assert(__con); + try + { + __con->end_heartbeat(__result); + assert(false); + } + catch(const ::Ice::Exception& ex) + { + ::IceInternal::CallbackNC<T>::exception(__result, ex); + } + } +}; + +template<class T> Callback_Connection_heartbeatPtr +newCallback_Connection_heartbeat(const IceUtil::Handle<T>& instance, + void (T::*excb)(const ::Ice::Exception&), + void (T::*sentcb)(bool) = 0) +{ + return new CallbackNC_Connection_heartbeat<T>(instance, excb, sentcb); +} + +template<class T> Callback_Connection_heartbeatPtr +newCallback_Connection_heartbeat(T* instance, void (T::*excb)(const ::Ice::Exception&), void (T::*sentcb)(bool) = 0) +{ + return new CallbackNC_Connection_heartbeat<T>(instance, excb, sentcb); +} + +template<class T, typename CT> +class Callback_Connection_heartbeat : public Callback_Connection_heartbeat_Base, + public ::IceInternal::OnewayCallback<T, CT> +{ +public: + + typedef IceUtil::Handle<T> TPtr; + + typedef void (T::*Exception)(const ::Ice::Exception& , const CT&); + typedef void (T::*Sent)(bool , const CT&); + + Callback_Connection_heartbeat(const TPtr& obj, Exception excb, Sent sentcb) + : ::IceInternal::OnewayCallback<T, CT>(obj, 0, excb, sentcb) + { + } + + virtual void completed(const ::Ice::AsyncResultPtr& __result) const + { + ::Ice::ConnectionPtr __con = __result->getConnection(); + assert(__con); + try + { + __con->end_heartbeat(__result); + assert(false); + } + catch(const ::Ice::Exception& ex) + { + ::IceInternal::Callback<T, CT>::exception(__result, ex); + } + } +}; + +template<class T, typename CT> Callback_Connection_heartbeatPtr +newCallback_Connection_heartbeat(const IceUtil::Handle<T>& instance, + void (T::*excb)(const ::Ice::Exception&, const CT&), + void (T::*sentcb)(bool, const CT&) = 0) +{ + return new Callback_Connection_heartbeat<T, CT>(instance, excb, sentcb); +} + +template<class T, typename CT> Callback_Connection_heartbeatPtr +newCallback_Connection_heartbeat(T* instance, void (T::*excb)(const ::Ice::Exception&, const CT&), + void (T::*sentcb)(bool, const CT&) = 0) +{ + return new Callback_Connection_heartbeat<T, CT>(instance, excb, sentcb); +} + } #endif |