diff options
Diffstat (limited to 'cpp/src/Ice/CommunicatorI.cpp')
-rw-r--r-- | cpp/src/Ice/CommunicatorI.cpp | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/cpp/src/Ice/CommunicatorI.cpp b/cpp/src/Ice/CommunicatorI.cpp index 74669cc2dd4..a8e020e8a4a 100644 --- a/cpp/src/Ice/CommunicatorI.cpp +++ b/cpp/src/Ice/CommunicatorI.cpp @@ -137,12 +137,11 @@ Ice::CommunicatorI::createObjectAdapterWithEndpoints(const string& name, const s ObjectAdapterPtr adapter = _instance->objectAdapterFactory()->createObjectAdapter(name, endpts); - string locator = _instance->defaultsAndOverrides()->defaultLocator; - if(!locator.empty()) - { - adapter->setLocator(LocatorPrx::uncheckedCast(_instance->proxyFactory()->stringToProxy(locator))); - } - + // + // Set the adapter locator to this communicator default locator. + // + adapter->setLocator(_instance->referenceFactory()->getDefaultLocator()); + if(!_serverThreadPool) // Lazy initialization of _serverThreadPool. { _serverThreadPool = _instance->serverThreadPool(); @@ -256,6 +255,12 @@ Ice::CommunicatorI::setDefaultRouter(const RouterPrx& router) _instance->referenceFactory()->setDefaultRouter(router); } +void +Ice::CommunicatorI::setDefaultLocator(const LocatorPrx& locator) +{ + _instance->referenceFactory()->setDefaultLocator(locator); +} + PluginManagerPtr Ice::CommunicatorI::getPluginManager() { |