diff options
Diffstat (limited to 'cppe/src/IceE/LocatorInfo.cpp')
-rw-r--r-- | cppe/src/IceE/LocatorInfo.cpp | 318 |
1 files changed, 159 insertions, 159 deletions
diff --git a/cppe/src/IceE/LocatorInfo.cpp b/cppe/src/IceE/LocatorInfo.cpp index 7dc7f5aa836..5158cb5b510 100644 --- a/cppe/src/IceE/LocatorInfo.cpp +++ b/cppe/src/IceE/LocatorInfo.cpp @@ -53,7 +53,7 @@ IceInternal::LocatorManager::get(const LocatorPrx& loc) { if(!loc) { - return 0; + return 0; } LocatorPrx locator = LocatorPrx::uncheckedCast(loc->ice_locator(0)); // The locator can't be located. @@ -68,38 +68,38 @@ IceInternal::LocatorManager::get(const LocatorPrx& loc) if(_tableHint != _table.end()) { - if(_tableHint->first == locator) - { - p = _tableHint; - } + if(_tableHint->first == locator) + { + p = _tableHint; + } } if(p == _table.end()) { - p = _table.find(locator); + p = _table.find(locator); } if(p == _table.end()) { - // - // Rely on locator identity for the adapter table. We want to - // have only one table per locator (not one per locator - // proxy). - // - map<Identity, LocatorTablePtr>::iterator t = _locatorTables.find(locator->ice_getIdentity()); - if(t == _locatorTables.end()) - { - t = _locatorTables.insert(_locatorTables.begin(), - pair<const Identity, LocatorTablePtr>(locator->ice_getIdentity(), - new LocatorTable())); - } - - _tableHint = _table.insert(_tableHint, - pair<const LocatorPrx, LocatorInfoPtr>(locator, new LocatorInfo(locator, t->second))); + // + // Rely on locator identity for the adapter table. We want to + // have only one table per locator (not one per locator + // proxy). + // + map<Identity, LocatorTablePtr>::iterator t = _locatorTables.find(locator->ice_getIdentity()); + if(t == _locatorTables.end()) + { + t = _locatorTables.insert(_locatorTables.begin(), + pair<const Identity, LocatorTablePtr>(locator->ice_getIdentity(), + new LocatorTable())); + } + + _tableHint = _table.insert(_tableHint, + pair<const LocatorPrx, LocatorInfoPtr>(locator, new LocatorInfo(locator, t->second))); } else { - _tableHint = p; + _tableHint = p; } return _tableHint->second; @@ -112,10 +112,10 @@ IceInternal::LocatorTable::LocatorTable() void IceInternal::LocatorTable::clear() { - IceUtil::Mutex::Lock sync(*this); + IceUtil::Mutex::Lock sync(*this); - _adapterEndpointsMap.clear(); - _objectMap.clear(); + _adapterEndpointsMap.clear(); + _objectMap.clear(); } bool @@ -127,12 +127,12 @@ IceInternal::LocatorTable::getAdapterEndpoints(const string& adapter, vector<End if(p != _adapterEndpointsMap.end()) { - endpoints = p->second; - return true; + endpoints = p->second; + return true; } else { - return false; + return false; } } @@ -152,7 +152,7 @@ IceInternal::LocatorTable::removeAdapterEndpoints(const string& adapter) map<string, vector<EndpointPtr> >::iterator p = _adapterEndpointsMap.find(adapter); if(p == _adapterEndpointsMap.end()) { - return vector<EndpointPtr>(); + return vector<EndpointPtr>(); } vector<EndpointPtr> endpoints = p->second; @@ -171,12 +171,12 @@ IceInternal::LocatorTable::getProxy(const Identity& id, ObjectPrx& proxy) const if(p != _objectMap.end()) { - proxy = p->second; - return true; + proxy = p->second; + return true; } else { - return false; + return false; } } @@ -195,7 +195,7 @@ IceInternal::LocatorTable::removeProxy(const Identity& id) map<Identity, ObjectPrx>::iterator p = _objectMap.find(id); if(p == _objectMap.end()) { - return 0; + return 0; } ObjectPrx proxy = p->second; @@ -254,12 +254,12 @@ IceInternal::LocatorInfo::getLocatorRegistry() if(!_locatorRegistry) // Lazy initialization. { - _locatorRegistry = _locator->getRegistry(); + _locatorRegistry = _locator->getRegistry(); - // - // The locator registry can't be located. - // - _locatorRegistry = LocatorRegistryPrx::uncheckedCast(_locatorRegistry->ice_locator(0)); + // + // The locator registry can't be located. + // + _locatorRegistry = LocatorRegistryPrx::uncheckedCast(_locatorRegistry->ice_locator(0)); } return _locatorRegistry; @@ -274,11 +274,11 @@ IceInternal::LocatorInfo::getEndpoints(const IndirectReferencePtr& ref, bool& ca try { - if(!ref->getAdapterId().empty()) - { - if(!_table->getAdapterEndpoints(ref->getAdapterId(), endpoints)) - { - cached = false; + if(!ref->getAdapterId().empty()) + { + if(!_table->getAdapterEndpoints(ref->getAdapterId(), endpoints)) + { + cached = false; if(ref->getInstance()->traceLevels()->location >= 1) { @@ -287,20 +287,20 @@ IceInternal::LocatorInfo::getEndpoints(const IndirectReferencePtr& ref, bool& ca out << "searching for adapter by id" << "\n"; out << "adapter = " << ref->getAdapterId(); } - - object = _locator->findAdapterById(ref->getAdapterId()); - if(object) - { - endpoints = object->__reference()->getEndpoints(); - _table->addAdapterEndpoints(ref->getAdapterId(), endpoints); - } - } - } - else - { - bool objectCached = true; - if(!_table->getProxy(ref->getIdentity(), object)) - { + + object = _locator->findAdapterById(ref->getAdapterId()); + if(object) + { + endpoints = object->__reference()->getEndpoints(); + _table->addAdapterEndpoints(ref->getAdapterId(), endpoints); + } + } + } + else + { + bool objectCached = true; + if(!_table->getProxy(ref->getIdentity(), object)) + { if(ref->getInstance()->traceLevels()->location >= 1) { @@ -310,37 +310,37 @@ IceInternal::LocatorInfo::getEndpoints(const IndirectReferencePtr& ref, bool& ca out << "object = " << ref->getInstance()->identityToString(ref->getIdentity()); } - objectCached = false; - object = _locator->findObjectById(ref->getIdentity()); - } - - bool endpointsCached = true; - if(object) - { - DirectReferencePtr odr = DirectReferencePtr::dynamicCast(object->__reference()); - if(odr) - { - endpointsCached = false; - endpoints = odr->getEndpoints(); - } - else - { - IndirectReferencePtr oir = IndirectReferencePtr::dynamicCast(object->__reference()); - assert(oir); - if(!oir->getAdapterId().empty()) - { - endpoints = getEndpoints(oir, endpointsCached); - } - } - } - - if(!objectCached && !endpoints.empty()) - { - _table->addProxy(ref->getIdentity(), object); - } - - cached = objectCached || endpointsCached; - } + objectCached = false; + object = _locator->findObjectById(ref->getIdentity()); + } + + bool endpointsCached = true; + if(object) + { + DirectReferencePtr odr = DirectReferencePtr::dynamicCast(object->__reference()); + if(odr) + { + endpointsCached = false; + endpoints = odr->getEndpoints(); + } + else + { + IndirectReferencePtr oir = IndirectReferencePtr::dynamicCast(object->__reference()); + assert(oir); + if(!oir->getAdapterId().empty()) + { + endpoints = getEndpoints(oir, endpointsCached); + } + } + } + + if(!objectCached && !endpoints.empty()) + { + _table->addProxy(ref->getIdentity(), object); + } + + cached = objectCached || endpointsCached; + } } catch(const AdapterNotFoundException&) { @@ -352,10 +352,10 @@ IceInternal::LocatorInfo::getEndpoints(const IndirectReferencePtr& ref, bool& ca out << "adapter = " << ref->getAdapterId(); } - NotRegisteredException ex(__FILE__, __LINE__); - ex.kindOfObject = "object adapter"; - ex.id = ref->getAdapterId(); - throw ex; + NotRegisteredException ex(__FILE__, __LINE__); + ex.kindOfObject = "object adapter"; + ex.id = ref->getAdapterId(); + throw ex; } catch(const ObjectNotFoundException&) { @@ -367,32 +367,32 @@ IceInternal::LocatorInfo::getEndpoints(const IndirectReferencePtr& ref, bool& ca out << "object = " << ref->getInstance()->identityToString(ref->getIdentity()); } - NotRegisteredException ex(__FILE__, __LINE__); - ex.kindOfObject = "object"; - ex.id = ref->getInstance()->identityToString(ref->getIdentity()); - throw ex; + NotRegisteredException ex(__FILE__, __LINE__); + ex.kindOfObject = "object"; + ex.id = ref->getInstance()->identityToString(ref->getIdentity()); + throw ex; } catch(const NotRegisteredException&) { - throw; + throw; } catch(const LocalException& ex) { - if(ref->getInstance()->traceLevels()->location >= 1) - { - Trace out(ref->getInstance()->initializationData().logger, ref->getInstance()->traceLevels()->locationCat); - out << "couldn't contact the locator to retrieve adapter endpoints\n"; - if(!ref) - { - out << "object = " << ref->getInstance()->identityToString(ref->getIdentity()) << "\n"; - } - else - { - out << "adapter = " << ref->getAdapterId() << "\n"; - } - out << "reason = " << ex.toString(); - } - throw; + if(ref->getInstance()->traceLevels()->location >= 1) + { + Trace out(ref->getInstance()->initializationData().logger, ref->getInstance()->traceLevels()->locationCat); + out << "couldn't contact the locator to retrieve adapter endpoints\n"; + if(!ref) + { + out << "object = " << ref->getInstance()->identityToString(ref->getIdentity()) << "\n"; + } + else + { + out << "adapter = " << ref->getAdapterId() << "\n"; + } + out << "reason = " << ex.toString(); + } + throw; } if(ref->getInstance()->traceLevels()->location >= 1) @@ -433,25 +433,25 @@ IceInternal::LocatorInfo::clearObjectCache(const IndirectReferencePtr& ref) { if(ref->getAdapterId().empty()) { - ObjectPrx object = _table->removeProxy(ref->getIdentity()); - if(object) - { - IndirectReferencePtr oir = IndirectReferencePtr::dynamicCast(object->__reference()); - if(oir) - { - if(!oir->getAdapterId().empty()) - { - clearCache(oir); - } - } - else - { - if(ref->getInstance()->traceLevels()->location >= 2) - { - trace("removed endpoints from locator table", ref, object->__reference()->getEndpoints()); - } - } - } + ObjectPrx object = _table->removeProxy(ref->getIdentity()); + if(object) + { + IndirectReferencePtr oir = IndirectReferencePtr::dynamicCast(object->__reference()); + if(oir) + { + if(!oir->getAdapterId().empty()) + { + clearCache(oir); + } + } + else + { + if(ref->getInstance()->traceLevels()->location >= 2) + { + trace("removed endpoints from locator table", ref, object->__reference()->getEndpoints()); + } + } + } } } @@ -460,51 +460,51 @@ IceInternal::LocatorInfo::clearCache(const IndirectReferencePtr& ref) { if(!ref->getAdapterId().empty()) { - vector<EndpointPtr> endpoints = _table->removeAdapterEndpoints(ref->getAdapterId()); + vector<EndpointPtr> endpoints = _table->removeAdapterEndpoints(ref->getAdapterId()); - if(!endpoints.empty() && ref->getInstance()->traceLevels()->location >= 2) - { - trace("removed endpoints from locator table", ref, endpoints); - } + if(!endpoints.empty() && ref->getInstance()->traceLevels()->location >= 2) + { + trace("removed endpoints from locator table", ref, endpoints); + } } else { - ObjectPrx object = _table->removeProxy(ref->getIdentity()); - if(object) - { - IndirectReferencePtr oir = IndirectReferencePtr::dynamicCast(object->__reference()); - if(oir) - { - if(!oir->getAdapterId().empty()) - { - clearCache(oir); - } - } - else - { - if(ref->getInstance()->traceLevels()->location >= 2) - { - trace("removed endpoints from locator table", ref, object->__reference()->getEndpoints()); - } - } - } + ObjectPrx object = _table->removeProxy(ref->getIdentity()); + if(object) + { + IndirectReferencePtr oir = IndirectReferencePtr::dynamicCast(object->__reference()); + if(oir) + { + if(!oir->getAdapterId().empty()) + { + clearCache(oir); + } + } + else + { + if(ref->getInstance()->traceLevels()->location >= 2) + { + trace("removed endpoints from locator table", ref, object->__reference()->getEndpoints()); + } + } + } } } void IceInternal::LocatorInfo::trace(const string& msg, - const IndirectReferencePtr& ref, - const vector<EndpointPtr>& endpoints) + const IndirectReferencePtr& ref, + const vector<EndpointPtr>& endpoints) { Trace out(ref->getInstance()->initializationData().logger, ref->getInstance()->traceLevels()->locationCat); out << msg << "\n"; if(!ref->getAdapterId().empty()) { - out << "adapter = " << ref->getAdapterId() << "\n"; + out << "adapter = " << ref->getAdapterId() << "\n"; } else { - out << "object = " << ref->getInstance()->identityToString(ref->getIdentity()) << "\n"; + out << "object = " << ref->getInstance()->identityToString(ref->getIdentity()) << "\n"; } const char* sep = endpoints.size() > 1 ? ":" : ""; |