diff options
author | Marc Laukien <marc@zeroc.com> | 2003-01-27 21:11:36 +0000 |
---|---|---|
committer | Marc Laukien <marc@zeroc.com> | 2003-01-27 21:11:36 +0000 |
commit | e51106b81ce7c098de1bfef0b1cc0fd39763b97f (patch) | |
tree | 8b208a4ef512df2a66928fec0de3db28354bcfe6 /cpp/src/Ice/UserExceptionFactoryManager.cpp | |
parent | Added ICE_UTIL_API for nullHandleAbort (diff) | |
download | ice-e51106b81ce7c098de1bfef0b1cc0fd39763b97f.tar.bz2 ice-e51106b81ce7c098de1bfef0b1cc0fd39763b97f.tar.xz ice-e51106b81ce7c098de1bfef0b1cc0fd39763b97f.zip |
restructuring
Diffstat (limited to 'cpp/src/Ice/UserExceptionFactoryManager.cpp')
-rw-r--r-- | cpp/src/Ice/UserExceptionFactoryManager.cpp | 52 |
1 files changed, 14 insertions, 38 deletions
diff --git a/cpp/src/Ice/UserExceptionFactoryManager.cpp b/cpp/src/Ice/UserExceptionFactoryManager.cpp index 1c5ef0fa78d..cc54ac1cc4a 100644 --- a/cpp/src/Ice/UserExceptionFactoryManager.cpp +++ b/cpp/src/Ice/UserExceptionFactoryManager.cpp @@ -24,18 +24,15 @@ using namespace IceInternal; void IceInternal::incRef(UserExceptionFactoryManager* p) { p->__incRef(); } void IceInternal::decRef(UserExceptionFactoryManager* p) { p->__decRef(); } -const char * const UserExceptionFactoryManager::_kindOfObject = "user exception factory"; - void IceInternal::UserExceptionFactoryManager::add(const UserExceptionFactoryPtr& factory, const string& id) { IceUtil::Mutex::Lock sync(*this); - if( (_factoryMapHint != _factoryMap.end() && _factoryMapHint->first == id) - || _factoryMap.find(id) != _factoryMap.end()) + if(_factoryMap.find(id) != _factoryMap.end()) { AlreadyRegisteredException ex(__FILE__, __LINE__); - ex.kindOfObject = _kindOfObject; + ex.kindOfObject = "user exception factory"; ex.id = id; throw ex; } @@ -46,42 +43,27 @@ IceInternal::UserExceptionFactoryManager::add(const UserExceptionFactoryPtr& fac void IceInternal::UserExceptionFactoryManager::remove(const string& id) { - IceUtil::Mutex::Lock sync(*this); + UserExceptionFactoryPtr factory; - map<string, ::Ice::UserExceptionFactoryPtr>::iterator p = _factoryMap.end(); - - if(_factoryMapHint != _factoryMap.end()) { - if(_factoryMapHint->first == id) - { - p = _factoryMapHint; - } - } - - if(p == _factoryMap.end()) - { - p = _factoryMap.find(id); + IceUtil::Mutex::Lock sync(*this); + + map<string, UserExceptionFactoryPtr>::iterator p = _factoryMap.find(id); if(p == _factoryMap.end()) { NotRegisteredException ex(__FILE__, __LINE__); - ex.kindOfObject = _kindOfObject; + ex.kindOfObject = "user exception factory"; ex.id = id; throw ex; } - } - assert(p != _factoryMap.end()); - - p->second->destroy(); + + factory = p->second; - if(p == _factoryMapHint) - { - _factoryMap.erase(p++); - _factoryMapHint = p; - } - else - { _factoryMap.erase(p); + _factoryMapHint = _factoryMap.end(); } + + factory->destroy(); } UserExceptionFactoryPtr @@ -89,21 +71,15 @@ IceInternal::UserExceptionFactoryManager::find(const string& id) { IceUtil::Mutex::Lock sync(*this); - map<string, ::Ice::UserExceptionFactoryPtr>::iterator p = _factoryMap.end(); - if(_factoryMapHint != _factoryMap.end()) { if(_factoryMapHint->first == id) { - p = _factoryMapHint; + return _factoryMapHint->second; } } - if(p == _factoryMap.end()) - { - p = _factoryMap.find(id); - } - + map<string, UserExceptionFactoryPtr>::iterator p = _factoryMap.find(id); if(p != _factoryMap.end()) { _factoryMapHint = p; |