summaryrefslogtreecommitdiff
path: root/cpp/test/Ice/invoke/BlobjectI.cpp
diff options
context:
space:
mode:
authorJose <jose@zeroc.com>2015-12-30 18:06:36 +0100
committerJose <jose@zeroc.com>2015-12-30 18:06:36 +0100
commit95262b044798ae9930a4766afc25372d7ae125fe (patch)
treea5b2c17438374b9249bd7d06561d3a549465e71e /cpp/test/Ice/invoke/BlobjectI.cpp
parentC++ lambda cleanup (diff)
downloadice-95262b044798ae9930a4766afc25372d7ae125fe.tar.bz2
ice-95262b044798ae9930a4766afc25372d7ae125fe.tar.xz
ice-95262b044798ae9930a4766afc25372d7ae125fe.zip
C++11 ice_invoke_async & Blobject async implementation
Diffstat (limited to 'cpp/test/Ice/invoke/BlobjectI.cpp')
-rw-r--r--cpp/test/Ice/invoke/BlobjectI.cpp33
1 files changed, 33 insertions, 0 deletions
diff --git a/cpp/test/Ice/invoke/BlobjectI.cpp b/cpp/test/Ice/invoke/BlobjectI.cpp
index 0898c02f3c7..68e18223365 100644
--- a/cpp/test/Ice/invoke/BlobjectI.cpp
+++ b/cpp/test/Ice/invoke/BlobjectI.cpp
@@ -94,8 +94,40 @@ BlobjectArrayI::ice_invoke(const pair<const Ice::Byte*, const Ice::Byte*>& inEnc
return invokeInternal(in, outEncaps, current);
}
+#ifdef ICE_CPP11_MAPPING
+void
+BlobjectAsyncI::ice_invoke_async(vector<Ice::Byte> inEncaps,
+ function<void (bool, const vector<Ice::Byte>&)> response,
+ const Ice::Current& current)
+{
+ Ice::InputStreamPtr in = Ice::createInputStream(current.adapter->getCommunicator(), inEncaps);
+ vector<Ice::Byte> outEncaps;
+ bool ok = invokeInternal(in, outEncaps, current);
+ response(ok, outEncaps);
+}
void
+BlobjectArrayAsyncI::ice_invoke_async(pair<const Ice::Byte*, const Ice::Byte*> inEncaps,
+ function<void (bool, const pair<const Ice::Byte*, const Ice::Byte*>&)> response,
+ const Ice::Current& current)
+{
+ Ice::InputStreamPtr in = Ice::createInputStream(current.adapter->getCommunicator(), inEncaps);
+ vector<Ice::Byte> outEncaps;
+ bool ok = invokeInternal(in, outEncaps, current);
+#if (defined(_MSC_VER) && (_MSC_VER >= 1600))
+ pair<const Ice::Byte*, const Ice::Byte*> outPair(static_cast<const Ice::Byte*>(nullptr), static_cast<const Ice::Byte*>(nullptr));
+#else
+ pair<const Ice::Byte*, const Ice::Byte*> outPair(0, 0);
+#endif
+ if(outEncaps.size() != 0)
+ {
+ outPair.first = &outEncaps[0];
+ outPair.second = &outEncaps[0] + outEncaps.size();
+ }
+ response(ok, outPair);
+}
+#else
+void
BlobjectAsyncI::ice_invoke_async(const Ice::AMD_Object_ice_invokePtr& cb, const vector<Ice::Byte>& inEncaps,
const Ice::Current& current)
{
@@ -125,3 +157,4 @@ BlobjectArrayAsyncI::ice_invoke_async(const Ice::AMD_Object_ice_invokePtr& cb,
}
cb->ice_response(ok, outPair);
}
+#endif