00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #include "KeosResourceManager.h"
00023 #include "KeosLogger.h"
00024 #include "KeosException.h"
00025 #include "KeosResource.h"
00026
00027 namespace Keos
00028 {
00029
00030
00031
00032
00033
00034 CResourceManager::CResourceManager()
00035 {
00036 ILogger::Log("--> Create ResourceManager");
00037 }
00038
00039
00040 CResourceManager::~CResourceManager()
00041 {
00042 ILogger::Log("<-- Destroy ResourceManager");
00043 if (!m_Resources.empty())
00044 {
00045 ILogger::Log("WARNING - Some resources have not been released :");
00046
00047 for (TResourcesMap::const_iterator i = m_Resources.begin(); i != m_Resources.end(); ++i)
00048 {
00049 ILogger::Log(" - %s", i->second->GetName().c_str());
00050 }
00051 }
00052 }
00053
00054
00055 void CResourceManager::Add(const String& strName, IResource* pResource)
00056 {
00057 Assert(pResource != NULL);
00058
00059 if (m_Resources.find(strName) != m_Resources.end())
00060 ILogger::Log("WARNING - %s : resource already loaded !", strName.c_str());
00061
00062 m_Resources[strName] = pResource;
00063 pResource->m_strName = strName;
00064 }
00065
00066
00067 void CResourceManager::Remove(const String& strName)
00068 {
00069 TResourcesMap::iterator It = m_Resources.find(strName);
00070
00071 if (It == m_Resources.end())
00072 ILogger::Log("WARNING - %s : resource destroyed but not loaded !", strName.c_str());
00073
00074 m_Resources.erase(It);
00075 }
00076
00077 }