From 06ad21c2f678b3a34cc103b3083be9d96647e76d Mon Sep 17 00:00:00 2001 From: Dwayne Boone Date: Mon, 20 Mar 2006 14:02:01 +0000 Subject: Imrpoved support for using array mapping in async responses and Blobject. --- cpp/src/Ice/IncomingAsync.cpp | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) (limited to 'cpp/src/Ice/IncomingAsync.cpp') diff --git a/cpp/src/Ice/IncomingAsync.cpp b/cpp/src/Ice/IncomingAsync.cpp index 42d8cb9cf54..1874e71bd57 100644 --- a/cpp/src/Ice/IncomingAsync.cpp +++ b/cpp/src/Ice/IncomingAsync.cpp @@ -26,6 +26,9 @@ void IceInternal::decRef(IncomingAsync* p) { p->__decRef(); } void IceInternal::incRef(AMD_Object_ice_invoke* p) { p->__incRef(); } void IceInternal::decRef(AMD_Object_ice_invoke* p) { p->__decRef(); } +void IceInternal::incRef(AMD_Array_Object_ice_invoke* p) { p->__incRef(); } +void IceInternal::decRef(AMD_Array_Object_ice_invoke* p) { p->__decRef(); } + IceInternal::IncomingAsync::IncomingAsync(Incoming& in) : IncomingBase(in), _instanceCopy(_os.instance()), @@ -428,3 +431,41 @@ IceAsync::Ice::AMD_Object_ice_invoke::ice_exception() { __exception(); } + +IceAsync::Ice::AMD_Array_Object_ice_invoke::AMD_Array_Object_ice_invoke(Incoming& in) : + IncomingAsync(in) +{ +} + +void +IceAsync::Ice::AMD_Array_Object_ice_invoke::ice_response(bool ok, const pair& outParams) +{ + try + { + __os()->writeBlob(outParams.first, static_cast(outParams.second - outParams.first)); + } + catch(const LocalException& ex) + { + __exception(ex); + return; + } + __response(ok); +} + +void +IceAsync::Ice::AMD_Array_Object_ice_invoke::ice_exception(const Exception& ex) +{ + __exception(ex); +} + +void +IceAsync::Ice::AMD_Array_Object_ice_invoke::ice_exception(const std::exception& ex) +{ + __exception(ex); +} + +void +IceAsync::Ice::AMD_Array_Object_ice_invoke::ice_exception() +{ + __exception(); +} -- cgit v1.2.3