1
#include "Precompiled.h"
2
#include "FactoryManager.h"
7
FactoryManager* FactoryManager::GetInstancePtr()
9
static FactoryManager instance;
13
FactoryManager& FactoryManager::GetInstance()
15
return *GetInstancePtr();
18
FactoryManager::FactoryManager()
22
FactoryManager::~FactoryManager()
26
bool FactoryManager::ExistFactory(const std::string& _factoryName)
28
return mFactories.find(_factoryName) != mFactories.end();
31
void FactoryManager::RegisterFactory(IFactory* _factory, const std::string& _factoryName)
33
mFactories[_factoryName] = _factory;
36
IFactoryItem* FactoryManager::CreateItem(const std::string& _factoryName)
38
MapFactory::iterator item = mFactories.find(_factoryName);
39
if (item != mFactories.end())
40
return (*item).second->CreateItem();
44
void FactoryManager::UnregisterAllFactories()
46
for (MapFactory::iterator factory = mFactories.begin(); factory != mFactories.end(); factory ++)
47
delete (*factory).second;