diff options
author | Marc Laukien <marc@zeroc.com> | 2004-10-29 14:42:15 +0000 |
---|---|---|
committer | Marc Laukien <marc@zeroc.com> | 2004-10-29 14:42:15 +0000 |
commit | 939fab5de66d7c9181b1be525420165efd71930a (patch) | |
tree | 30e905a60834ebf8a24eb94a3e9d732d864962ed /cpp/src/slice2cpp/Gen.cpp | |
parent | fixes (diff) | |
download | ice-939fab5de66d7c9181b1be525420165efd71930a.tar.bz2 ice-939fab5de66d7c9181b1be525420165efd71930a.tar.xz ice-939fab5de66d7c9181b1be525420165efd71930a.zip |
Outgoing::abort()
Diffstat (limited to 'cpp/src/slice2cpp/Gen.cpp')
-rw-r--r-- | cpp/src/slice2cpp/Gen.cpp | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/cpp/src/slice2cpp/Gen.cpp b/cpp/src/slice2cpp/Gen.cpp index 369e86b6c7d..221da646fc4 100644 --- a/cpp/src/slice2cpp/Gen.cpp +++ b/cpp/src/slice2cpp/Gen.cpp @@ -1768,12 +1768,19 @@ Slice::Gen::DelegateMVisitor::visitOperation(const OperationPtr& p) << "static_cast< ::Ice::OperationMode>(" << p->mode() << "), __context, __compress);"; if(!inParams.empty()) { + C << nl << "try"; + C << sb; C << nl << "::IceInternal::BasicStream* __os = __out.os();"; - } - writeMarshalCode(C, inParams, 0); - if(p->sendsClasses()) - { - C << nl << "__os->writePendingObjects();"; + writeMarshalCode(C, inParams, 0); + if(p->sendsClasses()) + { + C << nl << "__os->writePendingObjects();"; + } + C << eb; + C << nl << "catch(const ::Ice::LocalException& __ex)"; + C << sb; + C << nl << "__out.abort(__ex);"; + C << eb; } C << nl << "bool __ok = __out.invoke();"; C << nl << "try"; |