summaryrefslogtreecommitdiff
path: root/cpp/src/Glacier2/Blobject.cpp
diff options
context:
space:
mode:
authorDwayne Boone <dwayne@zeroc.com>2006-03-20 14:02:01 +0000
committerDwayne Boone <dwayne@zeroc.com>2006-03-20 14:02:01 +0000
commit06ad21c2f678b3a34cc103b3083be9d96647e76d (patch)
tree46033285739df45469f86a0678e5081988dc0829 /cpp/src/Glacier2/Blobject.cpp
parentCatch exceptions from destroySession (diff)
downloadice-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.cpp14
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)
{