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