#pragma once #include "../eterPack/EterPack.h" class CPropertyManager : public CSingleton { public: CPropertyManager(); virtual ~CPropertyManager(); void Clear(); void SetPack(CEterPack * pPack); bool BuildPack(); bool LoadReservedCRC(const char * c_pszFileName); void ReserveCRC(DWORD dwCRC); DWORD GetUniqueCRC(const char * c_szSeed); bool Initialize(const char * c_pszPackFileName = NULL); bool Register(const char * c_pszFileName, CProperty ** ppProperty = NULL); bool Get(DWORD dwCRC, CProperty ** ppProperty); bool Get(const char * c_pszFileName, CProperty ** ppProperty); // bool Add(const char * c_pszFileName); // bool Remove(DWORD dwCRC); bool Put(const char * c_pszFileName, const char * c_pszSourceFileName); bool Erase(DWORD dwCRC); bool Erase(const char * c_pszFileName); protected: typedef std::map TPropertyCRCMap; typedef std::set TCRCSet; bool m_isFileMode; TPropertyCRCMap m_PropertyByCRCMap; TCRCSet m_ReservedCRCSet; CEterPack m_pack; CEterFileDict m_fileDict; };