diff options
author | Michi Henning <michi@zeroc.com> | 2009-12-09 15:12:12 +1000 |
---|---|---|
committer | Michi Henning <michi@zeroc.com> | 2009-12-09 15:12:12 +1000 |
commit | d0d27bb7cf7b5ff8f9f3028f63f650f1d0b01678 (patch) | |
tree | 9524523d712bca42f6bd36fabd72c76371ecdca8 /cpp/include/Ice/ConnectionAsync.h | |
parent | Merge branch 'master' of ssh://cvs.zeroc.com/home/git/ice (diff) | |
parent | fix for cpp/test/Ice/Makefile.mak (diff) | |
download | ice-d0d27bb7cf7b5ff8f9f3028f63f650f1d0b01678.tar.bz2 ice-d0d27bb7cf7b5ff8f9f3028f63f650f1d0b01678.tar.xz ice-d0d27bb7cf7b5ff8f9f3028f63f650f1d0b01678.zip |
Merge branch 'master' of ssh://cvs.zeroc.com/home/git/ice
Diffstat (limited to 'cpp/include/Ice/ConnectionAsync.h')
-rw-r--r-- | cpp/include/Ice/ConnectionAsync.h | 124 |
1 files changed, 124 insertions, 0 deletions
diff --git a/cpp/include/Ice/ConnectionAsync.h b/cpp/include/Ice/ConnectionAsync.h new file mode 100644 index 00000000000..b04e0b94ad9 --- /dev/null +++ b/cpp/include/Ice/ConnectionAsync.h @@ -0,0 +1,124 @@ +// ********************************************************************** +// +// Copyright (c) 2003-2009 ZeroC, Inc. All rights reserved. +// +// This copy of Ice is licensed to you under the terms described in the +// ICE_LICENSE file included in this distribution. +// +// ********************************************************************** + +#ifndef ICE_CONNECTION_ASYNC_H +#define ICE_CONNECTION_ASYNC_H + +#include <Ice/Connection.h> + +namespace Ice +{ + +template<class T> +class CallbackNC_Connection_flushBatchRequests : public Callback_Connection_flushBatchRequests_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_flushBatchRequests(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_flushBatchRequests(__result); + assert(false); + } + catch(::Ice::Exception& ex) + { +#if defined(_MSC_VER) && (_MSC_VER < 1300) // VC++ 6 compiler bug + __exception(__result, ex); +#else + ::IceInternal::CallbackNC<T>::__exception(__result, ex); +#endif + return; + } + } +}; + +template<class T> Callback_Connection_flushBatchRequestsPtr +newCallback_Connection_flushBatchRequests(const IceUtil::Handle<T>& instance, + void (T::*excb)(const ::Ice::Exception&), + void (T::*sentcb)(bool) = 0) +{ + return new CallbackNC_Connection_flushBatchRequests<T>(instance, excb, sentcb); +} + +template<class T> Callback_Connection_flushBatchRequestsPtr +newCallback_Connection_flushBatchRequests(T* instance, void (T::*excb)(const ::Ice::Exception&), + void (T::*sentcb)(bool) = 0) +{ + return new CallbackNC_Connection_flushBatchRequests<T>(instance, excb, sentcb); +} + +template<class T, typename CT> +class Callback_Connection_flushBatchRequests : public Callback_Connection_flushBatchRequests_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_flushBatchRequests(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_flushBatchRequests(__result); + assert(false); + } + catch(::Ice::Exception& ex) + { +#if defined(_MSC_VER) && (_MSC_VER < 1300) // VC++ 6 compiler bug + __exception(__result, ex); +#else + ::IceInternal::Callback<T, CT>::__exception(__result, ex); +#endif + return; + } + } +}; + +template<class T, typename CT> Callback_Connection_flushBatchRequestsPtr +newCallback_Connection_flushBatchRequests(const IceUtil::Handle<T>& instance, + void (T::*excb)(const ::Ice::Exception&, const CT&), + void (T::*sentcb)(bool, const CT&) = 0) +{ + return new Callback_Connection_flushBatchRequests<T, CT>(instance, excb, sentcb); +} + +template<class T, typename CT> Callback_Connection_flushBatchRequestsPtr +newCallback_Connection_flushBatchRequests(T* instance, void (T::*excb)(const ::Ice::Exception&, const CT&), + void (T::*sentcb)(bool, const CT&) = 0) +{ + return new Callback_Connection_flushBatchRequests<T, CT>(instance, excb, sentcb); +} + +} + +#endif |