summaryrefslogtreecommitdiff
path: root/cpp/src/Ice/ConnectionFactory.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src/Ice/ConnectionFactory.cpp')
-rw-r--r--cpp/src/Ice/ConnectionFactory.cpp15
1 files changed, 7 insertions, 8 deletions
diff --git a/cpp/src/Ice/ConnectionFactory.cpp b/cpp/src/Ice/ConnectionFactory.cpp
index 0cd4faa5dc4..cf022cce2fa 100644
--- a/cpp/src/Ice/ConnectionFactory.cpp
+++ b/cpp/src/Ice/ConnectionFactory.cpp
@@ -418,20 +418,19 @@ IceInternal::IncomingConnectionFactory::IncomingConnectionFactory(const Instance
EventHandler(instance),
_endpoint(endpoint),
_adapter(adapter),
+ _warn(_instance->properties()->getPropertyAsInt("Ice.ConnectionWarnings") > 0),
_state(StateHolding),
_registeredWithPool(false)
{
DefaultsAndOverridesPtr defaultsAndOverrides = _instance->defaultsAndOverrides();
if(defaultsAndOverrides->overrideTimeout)
{
- _endpoint = _endpoint->timeout(defaultsAndOverrides->overrideTimeoutValue);
+ const_cast<EndpointPtr&>(_endpoint) = _endpoint->timeout(defaultsAndOverrides->overrideTimeoutValue);
}
- _warn = _instance->properties()->getPropertyAsInt("Ice.ConnectionWarnings") > 0;
-
try
{
- _transceiver = _endpoint->serverTransceiver(_endpoint);
+ const_cast<TransceiverPtr&>(_transceiver) = _endpoint->serverTransceiver(const_cast<EndpointPtr&>(_endpoint));
if(_transceiver)
{
ConnectionPtr connection = new Connection(_instance, _transceiver, _endpoint, _adapter);
@@ -447,7 +446,7 @@ IceInternal::IncomingConnectionFactory::IncomingConnectionFactory(const Instance
}
else
{
- _acceptor = _endpoint->acceptor(_endpoint);
+ const_cast<AcceptorPtr&>(_acceptor) = _endpoint->acceptor(const_cast<EndpointPtr&>(_endpoint));
assert(_acceptor);
_acceptor->listen();
}
@@ -473,7 +472,7 @@ IceInternal::IncomingConnectionFactory::destroy()
}
void
-IceInternal::IncomingConnectionFactory::waitUntilFinished()
+IceInternal::IncomingConnectionFactory::waitUntilFinished() const
{
::IceUtil::Monitor< ::IceUtil::Mutex>::Lock sync(*this);
@@ -551,9 +550,9 @@ IceInternal::IncomingConnectionFactory::registerWithPool()
{
if(!_registeredWithPool)
{
- if(!_serverThreadPool)
+ if(!_serverThreadPool) // Lazy initialization.
{
- _serverThreadPool = _instance->serverThreadPool();
+ const_cast<ThreadPoolPtr&>(_serverThreadPool) = _instance->serverThreadPool();
assert(_serverThreadPool);
}
_serverThreadPool->_register(_acceptor->fd(), this);