Files
Sun1602/SUN3DEngine/include/Client/3DEngine/Effect/loadmanager.h
T
2022-10-26 12:25:11 +08:00

92 lines
1.9 KiB
Objective-C

// loadmanager.h
#ifndef _EFFECT_LOADMANAGER_H_
#define _EFFECT_LOADMANAGER_H_
#include <string>
#include <hash_map>
class CDiscAccess;
//------------------------------------------------------------------------------
/**
@class CLoadBaseManager
*/
class CLoadBaseManager
{
public:
typedef stdext::hash_map <WzID, std::string> STD_HM_ID;
// 생성자/소멸자
CLoadBaseManager();
~CLoadBaseManager();
// 생성
BOOL CreateFromFile( const char* pszFilePath,
CDiscAccess* pDisc,
EENUM_LOAD_TYPE eLoadType = EELT_NEW );
// 초기화
void Clear();
// 비었는가?
BOOL IsEmpty() const;
// WzID로 경로 얻기
BOOL GetPath( WzID wzID, char* szPath ) const;
// 맵 바로 얻기(순차 검색시 필요)
const STD_HM_ID& GetMap() const;
// 합치기
void Merge( const CLoadBaseManager& rhs );
// 복사
void Copy( const CLoadBaseManager& rhs );
private:
STD_HM_ID m_stdHashMapID;
};
//------------------------------------------------------------------------------
/**
*/
inline void CLoadBaseManager::Clear()
{
m_stdHashMapID.clear();
}
//------------------------------------------------------------------------------
/**
*/
inline BOOL CLoadBaseManager::IsEmpty() const
{
return m_stdHashMapID.empty();
}
//------------------------------------------------------------------------------
/**
*/
inline BOOL CLoadBaseManager::GetPath( WzID wzID, char* szPath ) const
{
WzAssert( szPath );
STD_HM_ID::const_iterator it = m_stdHashMapID.find( wzID );
if( it != m_stdHashMapID.end() )
{
strcpy( szPath, it->second.c_str() );
return TRUE;
}
return FALSE;
}
//------------------------------------------------------------------------------
/**
*/
inline const CLoadBaseManager::STD_HM_ID& CLoadBaseManager::GetMap() const
{
return m_stdHashMapID;
}
#endif // _EFFECT_LOADMANAGER_H_