diff options
author | Benoit Foucher <benoit@zeroc.com> | 2008-01-09 21:27:15 +0100 |
---|---|---|
committer | Benoit Foucher <benoit@zeroc.com> | 2008-01-09 21:27:15 +0100 |
commit | 5b2cdfebdd59ca3f99eb306e0ccf775fc0a81b83 (patch) | |
tree | 3414c09ed68bbbda6d446a76c552e065c9e91108 /cpp/src/Ice/Proxy.cpp | |
parent | Added info on mcpp (diff) | |
download | ice-5b2cdfebdd59ca3f99eb306e0ccf775fc0a81b83.tar.bz2 ice-5b2cdfebdd59ca3f99eb306e0ccf775fc0a81b83.tar.xz ice-5b2cdfebdd59ca3f99eb306e0ccf775fc0a81b83.zip |
- Fixed bug 1619, part of 2632.
Diffstat (limited to 'cpp/src/Ice/Proxy.cpp')
-rw-r--r-- | cpp/src/Ice/Proxy.cpp | 49 |
1 files changed, 30 insertions, 19 deletions
diff --git a/cpp/src/Ice/Proxy.cpp b/cpp/src/Ice/Proxy.cpp index 1191532eda2..124ae11f4bb 100644 --- a/cpp/src/Ice/Proxy.cpp +++ b/cpp/src/Ice/Proxy.cpp @@ -1170,19 +1170,21 @@ IceDelegateM::Ice::Object::ice_isA(const string& __id, const Context* context) bool __ok = __og.invoke(); try { - BasicStream* __is = __og.is(); if(!__ok) { try { - __is->throwException(); + __og.throwUserException(); } catch(const ::Ice::UserException& __ex) { throw ::Ice::UnknownUserException(__FILE__, __LINE__, __ex.ice_name()); } } + BasicStream* __is = __og.is(); + __is->startReadEncaps(); __is->read(__ret); + __is->endReadEncaps(); } catch(const ::Ice::LocalException& __ex) { @@ -1197,24 +1199,27 @@ IceDelegateM::Ice::Object::ice_ping(const Context* context) static const string __operation("ice_ping"); Outgoing __og(__handler.get(), __operation, ::Ice::Nonmutating, context); bool __ok = __og.invoke(); - try + if(!__og.is()->b.empty()) { - BasicStream* __is = __og.is(); - if(!__ok) + try { - try - { - __is->throwException(); - } - catch(const ::Ice::UserException& __ex) + if(!__ok) { - throw ::Ice::UnknownUserException(__FILE__, __LINE__, __ex.ice_name()); + try + { + __og.throwUserException(); + } + catch(const ::Ice::UserException& __ex) + { + throw ::Ice::UnknownUserException(__FILE__, __LINE__, __ex.ice_name()); + } } + __og.is()->skipEmptyEncaps(); + } + catch(const ::Ice::LocalException& __ex) + { + throw ::IceInternal::LocalExceptionWrapper(__ex, false); } - } - catch(const ::Ice::LocalException& __ex) - { - throw ::IceInternal::LocalExceptionWrapper(__ex, false); } } @@ -1227,19 +1232,21 @@ IceDelegateM::Ice::Object::ice_ids(const Context* context) bool __ok = __og.invoke(); try { - BasicStream* __is = __og.is(); if(!__ok) { try { - __is->throwException(); + __og.throwUserException(); } catch(const ::Ice::UserException& __ex) { throw ::Ice::UnknownUserException(__FILE__, __LINE__, __ex.ice_name()); } } + BasicStream* __is = __og.is(); + __is->startReadEncaps(); __is->read(__ret, false); + __is->endReadEncaps(); } catch(const ::Ice::LocalException& __ex) { @@ -1257,19 +1264,21 @@ IceDelegateM::Ice::Object::ice_id(const Context* context) bool __ok = __og.invoke(); try { - BasicStream* __is = __og.is(); if(!__ok) { try { - __is->throwException(); + __og.throwUserException(); } catch(const ::Ice::UserException& __ex) { throw ::Ice::UnknownUserException(__FILE__, __LINE__, __ex.ice_name()); } } + BasicStream* __is = __og.is(); + __is->startReadEncaps(); __is->read(__ret, false); + __is->endReadEncaps(); } catch(const ::Ice::LocalException& __ex) { @@ -1301,8 +1310,10 @@ IceDelegateM::Ice::Object::ice_invoke(const string& operation, try { BasicStream* __is = __og.is(); + __is->startReadEncaps(); Int sz = __is->getReadEncapsSize(); __is->readBlob(outParams, sz); + __is->endReadEncaps(); } catch(const ::Ice::LocalException& __ex) { |