diff options
Diffstat (limited to 'cpp/src/Ice/Proxy.cpp')
-rw-r--r-- | cpp/src/Ice/Proxy.cpp | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/cpp/src/Ice/Proxy.cpp b/cpp/src/Ice/Proxy.cpp index 64ed2612736..4ee1e1b0dad 100644 --- a/cpp/src/Ice/Proxy.cpp +++ b/cpp/src/Ice/Proxy.cpp @@ -21,6 +21,7 @@ #include <Ice/LocatorInfo.h> #include <Ice/BasicStream.h> #include <Ice/LocalException.h> +#include <Ice/Connection.h> // For __connection->getTransportInfo(); using namespace std; using namespace Ice; @@ -562,6 +563,24 @@ IceProxy::Ice::Object::ice_default() const } } +TransportInfoPtr +IceProxy::Ice::Object::ice_getTransportInfo() +{ + int __cnt = 0; + while(true) + { + try + { + Handle< ::IceDelegate::Ice::Object> __del = __getDelegate(); + return __del->ice_getTransportInfo(); + } + catch(const LocalException& __ex) + { + __handleException(__ex, __cnt); + } + } +} + ReferencePtr IceProxy::Ice::Object::__reference() const { @@ -858,6 +877,12 @@ IceDelegateM::Ice::Object::ice_invoke(const string& operation, return ok; } +TransportInfoPtr +IceDelegateM::Ice::Object::ice_getTransportInfo() +{ + return __connection->getTransportInfo(); +} + void IceDelegateM::Ice::Object::__copyFrom(const ::IceInternal::Handle< ::IceDelegateM::Ice::Object>& from) { @@ -956,6 +981,12 @@ IceDelegateD::Ice::Object::ice_invoke(const string&, throw CollocationOptimizationException(__FILE__, __LINE__); } +TransportInfoPtr +IceDelegateD::Ice::Object::ice_getTransportInfo() +{ + throw CollocationOptimizationException(__FILE__, __LINE__); +} + void IceDelegateD::Ice::Object::__copyFrom(const ::IceInternal::Handle< ::IceDelegateD::Ice::Object>& from) { |