summaryrefslogtreecommitdiff
path: root/cpp/src/Ice/IPEndpointI.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src/Ice/IPEndpointI.cpp')
-rw-r--r--cpp/src/Ice/IPEndpointI.cpp40
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)