summaryrefslogtreecommitdiff
path: root/cpp/src/IceSSL/EndpointI.cpp
diff options
context:
space:
mode:
authorBenoit Foucher <benoit@zeroc.com>2007-11-27 11:58:35 +0100
committerBenoit Foucher <benoit@zeroc.com>2007-11-27 11:58:35 +0100
commit47f800495093fd7679a315e2d730fea22f6135b7 (patch)
treea7b8d3488f3841367dd03d10cae293f36fd10481 /cpp/src/IceSSL/EndpointI.cpp
parentFixed SystemException to no longer derive from LocalException (diff)
downloadice-47f800495093fd7679a315e2d730fea22f6135b7.tar.bz2
ice-47f800495093fd7679a315e2d730fea22f6135b7.tar.xz
ice-47f800495093fd7679a315e2d730fea22f6135b7.zip
- Added support for non-blocking AMI/batch requests, connection
creation. - Added support for AMI oneway requests. - Changed collocation optimization to not perform any DNS lookups.
Diffstat (limited to 'cpp/src/IceSSL/EndpointI.cpp')
-rw-r--r--cpp/src/IceSSL/EndpointI.cpp33
1 files changed, 22 insertions, 11 deletions
diff --git a/cpp/src/IceSSL/EndpointI.cpp b/cpp/src/IceSSL/EndpointI.cpp
index ca03a133260..fd9edd4f42d 100644
--- a/cpp/src/IceSSL/EndpointI.cpp
+++ b/cpp/src/IceSSL/EndpointI.cpp
@@ -292,13 +292,13 @@ IceSSL::EndpointI::transceiver(IceInternal::EndpointIPtr& endp) const
vector<IceInternal::ConnectorPtr>
IceSSL::EndpointI::connectors() const
{
- vector<IceInternal::ConnectorPtr> connectors;
- vector<struct sockaddr_in> addresses = IceInternal::getAddresses(_host, _port);
- for(unsigned int i = 0; i < addresses.size(); ++i)
- {
- connectors.push_back(new ConnectorI(_instance, addresses[i], _timeout, _connectionId));
- }
- return connectors;
+ return connectors(IceInternal::getAddresses(_host, _port));
+}
+
+void
+IceSSL::EndpointI::connectors_async(const IceInternal::EndpointI_connectorsPtr& callback) const
+{
+ _instance->endpointHostResolver()->resolve(_host, _port, const_cast<EndpointI*>(this), callback);
}
IceInternal::AcceptorPtr
@@ -332,14 +332,14 @@ IceSSL::EndpointI::expand() const
}
bool
-IceSSL::EndpointI::equivalent(const IceInternal::ConnectorPtr& connector) const
+IceSSL::EndpointI::equivalent(const IceInternal::EndpointIPtr& endpoint) const
{
- const ConnectorI* sslConnector = dynamic_cast<const ConnectorI*>(connector.get());
- if(!sslConnector)
+ const EndpointI* sslEndpointI = dynamic_cast<const EndpointI*>(endpoint.get());
+ if(!sslEndpointI)
{
return false;
}
- return sslConnector->equivalent(_host, _port);
+ return sslEndpointI->_host == _host && sslEndpointI->_port == _port;
}
bool
@@ -452,6 +452,17 @@ IceSSL::EndpointI::operator<(const IceInternal::EndpointI& r) const
return false;
}
+vector<IceInternal::ConnectorPtr>
+IceSSL::EndpointI::connectors(const vector<struct sockaddr_in>& addresses) const
+{
+ vector<IceInternal::ConnectorPtr> connectors;
+ for(unsigned int i = 0; i < addresses.size(); ++i)
+ {
+ connectors.push_back(new ConnectorI(_instance, addresses[i], _timeout, _connectionId));
+ }
+ return connectors;
+}
+
IceSSL::EndpointFactoryI::EndpointFactoryI(const InstancePtr& instance)
: _instance(instance)
{