summaryrefslogtreecommitdiff
path: root/cpp
diff options
context:
space:
mode:
authorBernard Normier <bernard@zeroc.com>2016-07-29 10:51:33 -0400
committerBernard Normier <bernard@zeroc.com>2016-07-29 10:51:33 -0400
commit80da746e46cbd4164a75ef1b9fe82c6fce51768b (patch)
tree0e39b2171349a5896de738bf912b19599f47d8ab /cpp
parentICE-7118 - Add serialization support for C# proxies (diff)
downloadice-80da746e46cbd4164a75ef1b9fe82c6fce51768b.tar.bz2
ice-80da746e46cbd4164a75ef1b9fe82c6fce51768b.tar.xz
ice-80da746e46cbd4164a75ef1b9fe82c6fce51768b.zip
ice_id and ice_ids no longer string-convert their parameters (C++11, client-side)
Diffstat (limited to 'cpp')
-rw-r--r--cpp/src/Ice/Proxy.cpp16
-rw-r--r--cpp/test/Ice/custom/AllTests.cpp6
2 files changed, 20 insertions, 2 deletions
diff --git a/cpp/src/Ice/Proxy.cpp b/cpp/src/Ice/Proxy.cpp
index e2cc8a9b6e3..a974c133ed6 100644
--- a/cpp/src/Ice/Proxy.cpp
+++ b/cpp/src/Ice/Proxy.cpp
@@ -93,14 +93,26 @@ void
Ice::ObjectPrx::__ice_ids(const shared_ptr<IceInternal::OutgoingAsyncT<vector<string>>>& outAsync, const Context& ctx)
{
__checkAsyncTwowayOnly(ice_ids_name);
- outAsync->invoke(ice_ids_name, OperationMode::Nonmutating, DefaultFormat, ctx, nullptr, nullptr);
+ outAsync->invoke(ice_ids_name, OperationMode::Nonmutating, DefaultFormat, ctx, nullptr, nullptr,
+ [](Ice::InputStream* stream)
+ {
+ vector<string> v;
+ stream->read(v, false); // no conversion
+ return v;
+ });
}
void
Ice::ObjectPrx::__ice_id(const shared_ptr<IceInternal::OutgoingAsyncT<string>>& outAsync, const Context& ctx)
{
__checkAsyncTwowayOnly(ice_id_name);
- outAsync->invoke(ice_id_name, OperationMode::Nonmutating, DefaultFormat, ctx, nullptr, nullptr);
+ outAsync->invoke(ice_id_name, OperationMode::Nonmutating, DefaultFormat, ctx, nullptr, nullptr,
+ [](Ice::InputStream* stream)
+ {
+ string v;
+ stream->read(v, false); // no conversion
+ return v;
+ });
}
void
diff --git a/cpp/test/Ice/custom/AllTests.cpp b/cpp/test/Ice/custom/AllTests.cpp
index 4790cc4595d..997ef66b9bc 100644
--- a/cpp/test/Ice/custom/AllTests.cpp
+++ b/cpp/test/Ice/custom/AllTests.cpp
@@ -599,6 +599,12 @@ allTests(const Ice::CommunicatorPtr& communicator)
#endif
cout << "ok" << endl;
+ cout << "testing ice_id and ice_ids with string converter... " << flush;
+ test(t->ice_id() == Test::TestIntfPrx::ice_staticId());
+ test(t->ice_ids()[0] == Ice::ObjectPrx::ice_staticId());
+ test(t->ice_ids()[1] == Test::TestIntfPrx::ice_staticId());
+ cout << "ok" << endl;
+
cout << "testing alternate strings... " << flush;
{
Util::string_view in = "Hello World!";