summaryrefslogtreecommitdiff
path: root/cpp/src/slice2cs/Gen.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src/slice2cs/Gen.cpp')
-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;