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>
121 lines
2.3 KiB
C++
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_)
|