From 8bcf04a19c9f6c44bd38bef47ee1b557f40fb72f Mon Sep 17 00:00:00 2001 From: Dwayne Boone Date: Thu, 16 Mar 2006 13:53:32 +0000 Subject: Added BlobjectArray --- cpp/src/Ice/Object.cpp | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) (limited to 'cpp/src/Ice/Object.cpp') diff --git a/cpp/src/Ice/Object.cpp b/cpp/src/Ice/Object.cpp index f07dddce0ad..0b5ce8a9ff2 100644 --- a/cpp/src/Ice/Object.cpp +++ b/cpp/src/Ice/Object.cpp @@ -298,6 +298,26 @@ Ice::Blobject::__dispatch(Incoming& in, const Current& current) } } +DispatchStatus +Ice::BlobjectArray::__dispatch(Incoming& in, const Current& current) +{ + pair inParams; + vector outParams; + Int sz = in.is()->getReadEncapsSize(); + in.is()->readBlob(inParams.first, sz); + inParams.second = inParams.first + sz; + bool ok = ice_invoke(inParams, outParams, current); + in.os()->writeBlob(outParams); + if(ok) + { + return DispatchOK; + } + else + { + return DispatchUserException; + } +} + DispatchStatus Ice::BlobjectAsync::__dispatch(Incoming& in, const Current& current) { @@ -324,6 +344,32 @@ Ice::BlobjectAsync::__dispatch(Incoming& in, const Current& current) return DispatchAsync; } +DispatchStatus +Ice::BlobjectArrayAsync::__dispatch(Incoming& in, const Current& current) +{ + pair inParams; + Int sz = in.is()->getReadEncapsSize(); + in.is()->readBlob(inParams.first, sz); + inParams.second = inParams.first + sz; + AMD_Object_ice_invokePtr cb = new ::IceAsync::Ice::AMD_Object_ice_invoke(in); + try + { + ice_invoke_async(cb, inParams, current); + } + catch(const Exception& ex) + { + cb->ice_exception(ex); + } + catch(const ::std::exception& ex) + { + cb->ice_exception(ex); + } + catch(...) + { + cb->ice_exception(); + } + return DispatchAsync; +} void Ice::ice_writeObject(const OutputStreamPtr& out, const ObjectPtr& p) { -- cgit v1.2.3