diff options
Diffstat (limited to 'cpp/src/Ice/IPEndpointI.cpp')
-rw-r--r-- | cpp/src/Ice/IPEndpointI.cpp | 40 |
1 files changed, 36 insertions, 4 deletions
diff --git a/cpp/src/Ice/IPEndpointI.cpp b/cpp/src/Ice/IPEndpointI.cpp index 49c17dba4ad..74d274d8d77 100644 --- a/cpp/src/Ice/IPEndpointI.cpp +++ b/cpp/src/Ice/IPEndpointI.cpp @@ -46,7 +46,9 @@ Init init; } +#ifndef ICE_CPP11_MAPPING IceUtil::Shared* IceInternal::upCast(IPEndpointI* p) { return p; } +#endif IceUtil::Shared* IceInternal::upCast(EndpointHostResolver* p) { return p; } IceInternal::IPEndpointInfoI::IPEndpointInfoI(const EndpointIPtr& endpoint) : _endpoint(endpoint) @@ -78,7 +80,13 @@ IceInternal::IPEndpointInfoI::secure() const Ice::EndpointInfoPtr IceInternal::IPEndpointI::getInfo() const { - Ice::IPEndpointInfoPtr info = new IPEndpointInfoI(const_cast<IPEndpointI*>(this)); + Ice::IPEndpointInfoPtr info +#ifdef ICE_CPP11_MAPPING + = make_shared<IPEndpointInfoI>( + dynamic_pointer_cast<IPEndpointI>(const_pointer_cast<EndpointI>(shared_from_this()))); +#else + = new IPEndpointInfoI(const_cast<IPEndpointI*>(this)); +#endif fillEndpointInfo(info.get()); return info; } @@ -121,7 +129,12 @@ IceInternal::IPEndpointI::connectionId(const string& connectionId) const { if(connectionId == _connectionId) { +#ifdef ICE_CPP11_MAPPING + return dynamic_pointer_cast<IPEndpointI>( + const_pointer_cast<EndpointI>(shared_from_this())); +#else return const_cast<IPEndpointI*>(this); +#endif } else { @@ -144,7 +157,13 @@ IceInternal::IPEndpointI::port() const void IceInternal::IPEndpointI::connectors_async(Ice::EndpointSelectionType selType, const EndpointI_connectorsPtr& cb) const { - _instance->resolve(_host, _port, selType, const_cast<IPEndpointI*>(this), cb); + _instance->resolve(_host, _port, selType, +#ifdef ICE_CPP11_MAPPING + dynamic_pointer_cast<IPEndpointI>(const_pointer_cast<EndpointI>(shared_from_this())), +#else + const_cast<IPEndpointI*>(this), +#endif + cb); } vector<EndpointIPtr> @@ -154,7 +173,13 @@ IceInternal::IPEndpointI::expand() const vector<string> hosts = getHostsForEndpointExpand(_host, _instance->protocolSupport(), false); if(hosts.empty()) { - endps.push_back(const_cast<IPEndpointI*>(this)); + endps.push_back( +#ifdef ICE_CPP11_MAPPING + dynamic_pointer_cast<IPEndpointI>(const_pointer_cast<EndpointI>(shared_from_this())) +#else + const_cast<IPEndpointI*>(this) +#endif + ); } else { @@ -229,7 +254,11 @@ IceInternal::IPEndpointI::options() const } bool +#ifdef ICE_CPP11_MAPPING +IceInternal::IPEndpointI::operator==(const EndpointI& r) const +#else IceInternal::IPEndpointI::operator==(const LocalObject& r) const +#endif { const IPEndpointI* p = dynamic_cast<const IPEndpointI*>(&r); if(!p) @@ -261,12 +290,15 @@ IceInternal::IPEndpointI::operator==(const LocalObject& r) const { return false; } - return true; } bool +#ifdef ICE_CPP11_MAPPING +IceInternal::IPEndpointI::operator<(const EndpointI& r) const +#else IceInternal::IPEndpointI::operator<(const LocalObject& r) const +#endif { const IPEndpointI* p = dynamic_cast<const IPEndpointI*>(&r); if(!p) |