diff options
author | Dwayne Boone <dwayne@zeroc.com> | 2006-03-20 14:02:01 +0000 |
---|---|---|
committer | Dwayne Boone <dwayne@zeroc.com> | 2006-03-20 14:02:01 +0000 |
commit | 06ad21c2f678b3a34cc103b3083be9d96647e76d (patch) | |
tree | 46033285739df45469f86a0678e5081988dc0829 /cpp/src/Glacier2/Blobject.cpp | |
parent | Catch exceptions from destroySession (diff) | |
download | ice-06ad21c2f678b3a34cc103b3083be9d96647e76d.tar.bz2 ice-06ad21c2f678b3a34cc103b3083be9d96647e76d.tar.xz ice-06ad21c2f678b3a34cc103b3083be9d96647e76d.zip |
Imrpoved support for using array mapping in async responses and Blobject.
Diffstat (limited to 'cpp/src/Glacier2/Blobject.cpp')
-rw-r--r-- | cpp/src/Glacier2/Blobject.cpp | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/cpp/src/Glacier2/Blobject.cpp b/cpp/src/Glacier2/Blobject.cpp index 044ab52f9d5..3e7fa8ba5f1 100644 --- a/cpp/src/Glacier2/Blobject.cpp +++ b/cpp/src/Glacier2/Blobject.cpp @@ -101,7 +101,7 @@ Glacier2::Blobject::destroy() } void -Glacier2::Blobject::invoke(ObjectPrx& proxy, const AMD_Object_ice_invokePtr& amdCB, +Glacier2::Blobject::invoke(ObjectPrx& proxy, const AMD_Array_Object_ice_invokePtr& amdCB, const std::pair<const Ice::Byte*, const Ice::Byte*>& inParams, const Current& current) { // @@ -300,7 +300,17 @@ Glacier2::Blobject::invoke(ObjectPrx& proxy, const AMD_Object_ice_invokePtr& amd ok = proxy->ice_invoke(current.operation, current.mode, inParams, outParams); } - amdCB->ice_response(ok, outParams); + pair<const Byte*, const Byte*> outPair; + if(outParams.size() == 0) + { + outPair.first = outPair.second = 0; + } + else + { + outPair.first = &outParams[0]; + outPair.second = outPair.first + outParams.size(); + } + amdCB->ice_response(ok, outPair); } catch(const LocalException& ex) { |