Files
Client/GameTools/CaldronBase/BaseCacheMgr.h
LGram16 dd97ddec92 Restructure repository to include all source folders
Move git root from Client/ to src/ to track all source code:
- Client: Game client source (moved to Client/Client/)
- Server: Game server source
- GameTools: Development tools
- CryptoSource: Encryption utilities
- database: Database scripts
- Script: Game scripts
- rylCoder_16.02.2008_src: Legacy coder tools
- GMFont, Game: Additional resources

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-29 20:17:20 +09:00

121 lines
2.3 KiB
C++

#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<CLoadedObj *> 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<unsigned long , CCacheObj *> 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_)