diff options
Diffstat (limited to 'cpp/src/slice2cs/Gen.cpp')
-rw-r--r-- | cpp/src/slice2cs/Gen.cpp | 15 |
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; |