summaryrefslogtreecommitdiff
path: root/cpp/src/slice2cs
diff options
context:
space:
mode:
authorBenoit Foucher <benoit@zeroc.com>2016-08-25 11:28:20 +0200
committerBenoit Foucher <benoit@zeroc.com>2016-08-25 11:28:20 +0200
commit4fa256d3d27adffcc6529136cad904f0fbd490b0 (patch)
tree7250a0b630cfc8400745be4bdf7dde6891943b8c /cpp/src/slice2cs
parentremoving JavaCompat.ice (diff)
downloadice-4fa256d3d27adffcc6529136cad904f0fbd490b0.tar.bz2
ice-4fa256d3d27adffcc6529136cad904f0fbd490b0.tar.xz
ice-4fa256d3d27adffcc6529136cad904f0fbd490b0.zip
C++ dispatching code fixes
- removed user exception check on the server side (ICE-6980) - C++11 dipatch interceptor async callback (ICE-7263) - Fixed slicing/objects test in various mapping (removed Forward.ice)
Diffstat (limited to 'cpp/src/slice2cs')
-rw-r--r--cpp/src/slice2cs/Gen.cpp15
1 files changed, 14 insertions, 1 deletions
diff --git a/cpp/src/slice2cs/Gen.cpp b/cpp/src/slice2cs/Gen.cpp
index fcdcf250291..5fa82827c4f 100644
--- a/cpp/src/slice2cs/Gen.cpp
+++ b/cpp/src/slice2cs/Gen.cpp
@@ -4015,8 +4015,21 @@ Slice::Gen::ResultVisitor::visitOperation(const OperationPtr& p)
_out << nl << "os__.endEncapsulation();";
_out << eb;
_out << sp;
- _out << nl << "public Ice.OutputStream getOutputStream()";
+ _out << nl << "public Ice.OutputStream getOutputStream(Ice.Current current)";
_out << sb;
+ _out << nl << "if(os__ == null)";
+ _out << sb;
+ _out << nl << "return new " << name << spar;
+ if(ret)
+ {
+ _out << writeValue(ret);
+ }
+ for(ParamDeclList::const_iterator i = outParams.begin(); i != outParams.end(); ++i)
+ {
+ _out << writeValue((*i)->type());
+ }
+ _out << "current" << epar << ".getOutputStream(current);";
+ _out << eb;
_out << nl << "return os__;";
_out << eb;
_out << sp;