// loadmanager.h #ifndef _EFFECT_LOADMANAGER_H_ #define _EFFECT_LOADMANAGER_H_ #include #include class CDiscAccess; //------------------------------------------------------------------------------ /** @class CLoadBaseManager */ class CLoadBaseManager { public: typedef stdext::hash_map 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_