summaryrefslogtreecommitdiff
path: root/cpp/src/slice2cpp/Gen.cpp
diff options
context:
space:
mode:
authorMarc Laukien <marc@zeroc.com>2004-10-29 14:42:15 +0000
committerMarc Laukien <marc@zeroc.com>2004-10-29 14:42:15 +0000
commit939fab5de66d7c9181b1be525420165efd71930a (patch)
tree30e905a60834ebf8a24eb94a3e9d732d864962ed /cpp/src/slice2cpp/Gen.cpp
parentfixes (diff)
downloadice-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.cpp17
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";