diff options
Diffstat (limited to 'cpp/src/Ice/RouterInfo.cpp')
-rw-r--r-- | cpp/src/Ice/RouterInfo.cpp | 32 |
1 files changed, 5 insertions, 27 deletions
diff --git a/cpp/src/Ice/RouterInfo.cpp b/cpp/src/Ice/RouterInfo.cpp index 5ee23de0f13..18d56ccb201 100644 --- a/cpp/src/Ice/RouterInfo.cpp +++ b/cpp/src/Ice/RouterInfo.cpp @@ -120,7 +120,6 @@ IceInternal::RouterInfo::destroy() IceUtil::Mutex::Lock sync(*this); _clientEndpoints.clear(); - _serverEndpoints.clear(); _adapter = 0; _identities.clear(); } @@ -212,15 +211,13 @@ IceInternal::RouterInfo::getClientEndpoints(const GetClientEndpointsCallbackPtr& vector<EndpointIPtr> IceInternal::RouterInfo::getServerEndpoints() { + Ice::ObjectPrxPtr serverProxy = _router->getServerProxy(); + if(!serverProxy) { - IceUtil::Mutex::Lock sync(*this); - if(!_serverEndpoints.empty()) - { - return _serverEndpoints; - } + throw NoEndpointException(__FILE__, __LINE__); } - - return setServerEndpoints(_router->getServerProxy()); + serverProxy = serverProxy->ice_router(0); // The server proxy cannot be routed. + return serverProxy->_getReference()->getEndpoints(); } void @@ -342,25 +339,6 @@ IceInternal::RouterInfo::setClientEndpoints(const Ice::ObjectPrxPtr& proxy, bool return _clientEndpoints; } -vector<EndpointIPtr> -IceInternal::RouterInfo::setServerEndpoints(const Ice::ObjectPrxPtr& /*serverProxy*/) -{ - IceUtil::Mutex::Lock sync(*this); - if(_serverEndpoints.empty()) // Lazy initialization. - { - ObjectPrxPtr serverProxy = _router->getServerProxy(); - if(!serverProxy) - { - throw NoEndpointException(__FILE__, __LINE__); - } - - serverProxy = serverProxy->ice_router(0); // The server proxy cannot be routed. - - _serverEndpoints = serverProxy->_getReference()->getEndpoints(); - } - return _serverEndpoints; -} - void IceInternal::RouterInfo::addAndEvictProxies(const Ice::ObjectPrxPtr& proxy, const Ice::ObjectProxySeq& evictedProxies) { |