#if !defined(AFX_BASECACHEMGR_H__C53D076B_14CF_47B5_B21C_F7EF3477C7EA__INCLUDED_) #define AFX_BASECACHEMGR_H__C53D076B_14CF_47B5_B21C_F7EF3477C7EA__INCLUDED_ #if _MSC_VER > 1000 #pragma once #endif // _MSC_VER > 1000 #pragma warning( disable : 4786 ) #include "./Caldron.h" #include "./LoadedObj.h" namespace Caldron { namespace Base { /* ********************************************************************* * CCacheObj * ÆÄÀÏ : BaseCacheMgr.h * ±â´É : Caldron¿£Áø ³»ºÎ¿¡¼­ »ç¿ëµÇ´Â CacheMgr¿¡¼­ data °¡ ´Ù·ïÁö´Â ´ÜÀ§ * history : 2004.01.16 wizardbug ********************************************************************** */ class CCacheObj { public: std::vector m_lstDatas; int m_iDatasNum; CCacheObj() : m_iDatasNum(0) { m_lstDatas.clear(); } CCacheObj(CLoadedObj *pObj) : m_iDatasNum(0) { m_lstDatas.clear(); m_lstDatas.push_back(pObj); m_iDatasNum++; } void Add_Back(CLoadedObj *pObj) { m_lstDatas.push_back(pObj); m_iDatasNum++; } ~CCacheObj() { if(m_iDatasNum > 0) { for(int i=0;i < m_iDatasNum; i++) { if(m_lstDatas[i]) { SafeDelete(m_lstDatas[i]); } } } m_iDatasNum = 0; m_lstDatas.clear(); } }; typedef std::map CACHETABLE; typedef CACHETABLE::value_type CACHETABLEOBJ; typedef CACHETABLE::iterator CACHEITER; /* ********************************************************************* * CBaseCacheMgr * ÆÄÀÏ : BaseCacheMgr.h * ±â´É : Caldron¿£Áø ³»ºÎ¿¡¼­ »ç¿ëµÇ´Â ¸ðµç CacheMgrµéÀÇ ¾î¹Ì class * history : 2004.01.16 wizardbug ********************************************************************** */ const int DEFAULT_MAXCACHENUM = 100; class CBaseCacheMgr { protected: unsigned long GetHashID(const char *strFileName); CACHETABLE m_CacheTable; int m_iCachesNum; public: CBaseCacheMgr(): m_iCachesNum(0) { m_CacheTable.clear(); } virtual ~CBaseCacheMgr() { if(m_iCachesNum > 0) { for(CACHEITER Itr = m_CacheTable.begin(); Itr != m_CacheTable.end();) { if(Itr->second != NULL) { SafeDelete(Itr->second); } Itr++; } m_CacheTable.clear(); m_iCachesNum = 0; } } virtual void *GetData(const char *strFileName) = 0; virtual void *LoadData(const char *strFileName) = 0; }; } } #endif // !defined(AFX_BASECACHEMGR_H__C53D076B_14CF_47B5_B21C_F7EF3477C7EA__INCLUDED_)