diff options
author | Jose <jose@zeroc.com> | 2015-12-30 18:06:36 +0100 |
---|---|---|
committer | Jose <jose@zeroc.com> | 2015-12-30 18:06:36 +0100 |
commit | 95262b044798ae9930a4766afc25372d7ae125fe (patch) | |
tree | a5b2c17438374b9249bd7d06561d3a549465e71e /cpp/test/Ice/invoke/BlobjectI.cpp | |
parent | C++ lambda cleanup (diff) | |
download | ice-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.cpp | 33 |
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 |