diff options
author | Jose <jose@zeroc.com> | 2015-12-01 17:36:19 +0100 |
---|---|---|
committer | Jose <jose@zeroc.com> | 2015-12-01 17:36:19 +0100 |
commit | 2029ff368e49fae489b8ec8fc12f7d126b182dfb (patch) | |
tree | 6075d652b7851831c39e6f22004d8720864f1a60 /cpp/src/Ice/ObjectFactoryManager.cpp | |
parent | The default LMDB map size for IceGrid and IceStorm is now 10MB (Windows) (diff) | |
download | ice-2029ff368e49fae489b8ec8fc12f7d126b182dfb.tar.bz2 ice-2029ff368e49fae489b8ec8fc12f7d126b182dfb.tar.xz ice-2029ff368e49fae489b8ec8fc12f7d126b182dfb.zip |
C++11 mapping initial commit
Diffstat (limited to 'cpp/src/Ice/ObjectFactoryManager.cpp')
-rw-r--r-- | cpp/src/Ice/ObjectFactoryManager.cpp | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/cpp/src/Ice/ObjectFactoryManager.cpp b/cpp/src/Ice/ObjectFactoryManager.cpp index 835df0b588e..d09ad32afe1 100644 --- a/cpp/src/Ice/ObjectFactoryManager.cpp +++ b/cpp/src/Ice/ObjectFactoryManager.cpp @@ -19,7 +19,7 @@ using namespace IceInternal; IceUtil::Shared* IceInternal::upCast(ObjectFactoryManager* p) { return p; } void -IceInternal::ObjectFactoryManager::add(const ObjectFactoryPtr& factory, const string& id) +IceInternal::ObjectFactoryManager::add(const ICE_OBJECT_FACTORY& factory, const string& id) { IceUtil::Mutex::Lock sync(*this); @@ -32,13 +32,13 @@ IceInternal::ObjectFactoryManager::add(const ObjectFactoryPtr& factory, const st throw ex; } - _factoryMapHint = _factoryMap.insert(_factoryMapHint, pair<const string, ObjectFactoryPtr>(id, factory)); + _factoryMapHint = _factoryMap.insert(_factoryMapHint, pair<const string, ICE_OBJECT_FACTORY>(id, factory)); } void IceInternal::ObjectFactoryManager::remove(const string& id) { - ObjectFactoryPtr factory = 0; + ICE_OBJECT_FACTORY factory = ICE_NULLPTR; { IceUtil::Mutex::Lock sync(*this); @@ -81,10 +81,12 @@ IceInternal::ObjectFactoryManager::remove(const string& id) // Destroy outside the lock // assert(factory != 0); +#ifndef ICE_CPP11_MAPPING factory->destroy(); +#endif } -ObjectFactoryPtr +ICE_OBJECT_FACTORY IceInternal::ObjectFactoryManager::find(const string& id) const { IceUtil::Mutex::Lock sync(*this); @@ -112,7 +114,7 @@ IceInternal::ObjectFactoryManager::find(const string& id) const } else { - return 0; + return ICE_NULLPTR; } } @@ -124,6 +126,11 @@ IceInternal::ObjectFactoryManager::ObjectFactoryManager() : void IceInternal::ObjectFactoryManager::destroy() { +#ifdef ICE_CPP11_MAPPING + IceUtil::Mutex::Lock sync(*this); + _factoryMap.clear(); + _factoryMapHint = _factoryMap.end(); +#else FactoryMap oldMap; { IceUtil::Mutex::Lock sync(*this); @@ -136,4 +143,5 @@ IceInternal::ObjectFactoryManager::destroy() // for_each(oldMap.begin(), oldMap.end(), Ice::secondVoidMemFun<const string, ObjectFactory>(&ObjectFactory::destroy)); +#endif } |