// ********************************************************************** // // Copyright (c) 2003-2012 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_COMMUNICATOR_ASYNC_H #define ICE_COMMUNICATOR_ASYNC_H #include namespace Ice { template class CallbackNC_Communicator_flushBatchRequests : public Callback_Communicator_flushBatchRequests_Base, public ::IceInternal::OnewayCallbackNC { public: typedef IceUtil::Handle TPtr; typedef void (T::*Exception)(const ::Ice::Exception&); typedef void (T::*Sent)(bool); CallbackNC_Communicator_flushBatchRequests(const TPtr& obj, Exception excb, Sent sentcb) : ::IceInternal::OnewayCallbackNC(obj, 0, excb, sentcb) { } virtual void __completed(const ::Ice::AsyncResultPtr& __result) const { ::Ice::CommunicatorPtr __com = __result->getCommunicator(); assert(__com); try { __com->end_flushBatchRequests(__result); assert(false); } catch(::Ice::Exception& ex) { ::IceInternal::CallbackNC::__exception(__result, ex); } } }; #ifdef ICE_CPP11 class Cpp11FnCallbackNC_Communicator_flushBatchRequests : virtual public ::IceInternal::Cpp11FnCallbackNC { public: Cpp11FnCallbackNC_Communicator_flushBatchRequests( const ::IceInternal::Function& excb, const ::IceInternal::Function& sentcb) : ::IceInternal::Cpp11FnCallbackNC(excb, sentcb) { CallbackBase::checkCallback(true, excb != nullptr); } virtual void __completed(const ::Ice::AsyncResultPtr& __result) const { ::Ice::CommunicatorPtr __com = __result->getCommunicator(); assert(__com); try { __com->end_flushBatchRequests(__result); assert(false); } catch(::Ice::Exception& ex) { ::IceInternal::Cpp11FnCallbackNC::__exception(__result, ex); } } }; #endif template Callback_Communicator_flushBatchRequestsPtr newCallback_Communicator_flushBatchRequests(const IceUtil::Handle& instance, void (T::*excb)(const ::Ice::Exception&), void (T::*sentcb)(bool) = 0) { return new CallbackNC_Communicator_flushBatchRequests(instance, excb, sentcb); } template Callback_Communicator_flushBatchRequestsPtr newCallback_Communicator_flushBatchRequests(T* instance, void (T::*excb)(const ::Ice::Exception&), void (T::*sentcb)(bool) = 0) { return new CallbackNC_Communicator_flushBatchRequests(instance, excb, sentcb); } template class Callback_Communicator_flushBatchRequests : public Callback_Communicator_flushBatchRequests_Base, public ::IceInternal::OnewayCallback { public: typedef IceUtil::Handle TPtr; typedef void (T::*Exception)(const ::Ice::Exception& , const CT&); typedef void (T::*Sent)(bool , const CT&); Callback_Communicator_flushBatchRequests(const TPtr& obj, Exception excb, Sent sentcb) : ::IceInternal::OnewayCallback(obj, 0, excb, sentcb) { } virtual void __completed(const ::Ice::AsyncResultPtr& __result) const { ::Ice::CommunicatorPtr __com = __result->getCommunicator(); assert(__com); try { __com->end_flushBatchRequests(__result); assert(false); } catch(::Ice::Exception& ex) { ::IceInternal::Callback::__exception(__result, ex); } } }; template Callback_Communicator_flushBatchRequestsPtr newCallback_Communicator_flushBatchRequests(const IceUtil::Handle& instance, void (T::*excb)(const ::Ice::Exception&, const CT&), void (T::*sentcb)(bool, const CT&) = 0) { return new Callback_Communicator_flushBatchRequests(instance, excb, sentcb); } template Callback_Communicator_flushBatchRequestsPtr newCallback_Communicator_flushBatchRequests(T* instance, void (T::*excb)(const ::Ice::Exception&, const CT&), void (T::*sentcb)(bool, const CT&) = 0) { return new Callback_Communicator_flushBatchRequests(instance, excb, sentcb); } } #endif