diff options
author | Michi Henning <michi@zeroc.com> | 2003-05-08 07:25:27 +0000 |
---|---|---|
committer | Michi Henning <michi@zeroc.com> | 2003-05-08 07:25:27 +0000 |
commit | ea8bdaa909604d74cca0a50d9256958476059bb1 (patch) | |
tree | 9f07b5371224a14df6fe868c545567af4f82d24a /cpp/src/Ice/UserExceptionFactoryManager.cpp | |
parent | Fixed incorrect scope for passing function pointer for __patch__ObjectPtr. (diff) | |
download | ice-ea8bdaa909604d74cca0a50d9256958476059bb1.tar.bz2 ice-ea8bdaa909604d74cca0a50d9256958476059bb1.tar.xz ice-ea8bdaa909604d74cca0a50d9256958476059bb1.zip |
Slicing updates for Windows port.
Diffstat (limited to 'cpp/src/Ice/UserExceptionFactoryManager.cpp')
-rw-r--r-- | cpp/src/Ice/UserExceptionFactoryManager.cpp | 107 |
1 files changed, 0 insertions, 107 deletions
diff --git a/cpp/src/Ice/UserExceptionFactoryManager.cpp b/cpp/src/Ice/UserExceptionFactoryManager.cpp deleted file mode 100644 index c23a485a3d9..00000000000 --- a/cpp/src/Ice/UserExceptionFactoryManager.cpp +++ /dev/null @@ -1,107 +0,0 @@ -// ********************************************************************** -// -// Copyright (c) 2003 -// ZeroC, Inc. -// Billerica, MA, USA -// -// All Rights Reserved. -// -// Ice is free software; you can redistribute it and/or modify it under -// the terms of the GNU General Public License version 2 as published by -// the Free Software Foundation. -// -// ********************************************************************** - -#include <Ice/UserExceptionFactoryManager.h> -#include <Ice/UserExceptionFactory.h> -#include <Ice/Functional.h> -#include <Ice/LocalException.h> - -using namespace std; -using namespace Ice; -using namespace IceInternal; - -void IceInternal::incRef(UserExceptionFactoryManager* p) { p->__incRef(); } -void IceInternal::decRef(UserExceptionFactoryManager* p) { p->__decRef(); } - -void -IceInternal::UserExceptionFactoryManager::add(const UserExceptionFactoryPtr& factory, const string& id) -{ - IceUtil::Mutex::Lock sync(*this); - - if(_factoryMap.find(id) != _factoryMap.end()) - { - AlreadyRegisteredException ex(__FILE__, __LINE__); - ex.kindOfObject = "user exception factory"; - ex.id = id; - throw ex; - } - - _factoryMapHint = _factoryMap.insert(_factoryMapHint, pair<const string, UserExceptionFactoryPtr>(id, factory)); -} - -void -IceInternal::UserExceptionFactoryManager::remove(const string& id) -{ - UserExceptionFactoryPtr factory; - - { - IceUtil::Mutex::Lock sync(*this); - - map<string, UserExceptionFactoryPtr>::iterator p = _factoryMap.find(id); - if(p == _factoryMap.end()) - { - NotRegisteredException ex(__FILE__, __LINE__); - ex.kindOfObject = "user exception factory"; - ex.id = id; - throw ex; - } - - factory = p->second; - - _factoryMap.erase(p); - _factoryMapHint = _factoryMap.end(); - } - - factory->destroy(); -} - -UserExceptionFactoryPtr -IceInternal::UserExceptionFactoryManager::find(const string& id) -{ - IceUtil::Mutex::Lock sync(*this); - - if(_factoryMapHint != _factoryMap.end()) - { - if(_factoryMapHint->first == id) - { - return _factoryMapHint->second; - } - } - - map<string, UserExceptionFactoryPtr>::iterator p = _factoryMap.find(id); - if(p != _factoryMap.end()) - { - _factoryMapHint = p; - return p->second; - } - else - { - return 0; - } -} - -IceInternal::UserExceptionFactoryManager::UserExceptionFactoryManager() : - _factoryMapHint(_factoryMap.end()) -{ -} - -void -IceInternal::UserExceptionFactoryManager::destroy() -{ - IceUtil::Mutex::Lock sync(*this); - for_each(_factoryMap.begin(), _factoryMap.end(), - Ice::secondVoidMemFun<const string, UserExceptionFactory>(&UserExceptionFactory::destroy)); - _factoryMap.clear(); - _factoryMapHint = _factoryMap.end(); -} |