summaryrefslogtreecommitdiff
path: root/cpp/src/Ice/IncomingAsync.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/Ice/IncomingAsync.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/Ice/IncomingAsync.cpp')
-rw-r--r--cpp/src/Ice/IncomingAsync.cpp41
1 files changed, 41 insertions, 0 deletions
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<const Byte*, const Byte*>& outParams)
+{
+ try
+ {
+ __os()->writeBlob(outParams.first, static_cast<Int>(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();
+}