#pragma once #include "akCoreLinker.h" #include #include #include #include #include //hash_mapÀ» »ç¿ëÇÏ´Â °æ¿ì //1. ¸¹Àº ÀڷḦ ÀúÀåÇϰí, °Ë»ö ¼Óµµ°¡ »¡¶ó¾ß ÇÑ´Ù. //2. ³Ê¹« ºó¹øÇÏ°Ô ÀڷḦ »ðÀÔ, »èÁ¦ ÇÏÁö ¾Ê´Â´Ù. //3. key°ªÀ¸·Î CstringÀ» ¾²Áö ¸øÇÑ´Ù.(±¸ºÐÇØ¼­ Ŭ·¡½º¸¦ ¸¸µç ÀÌÀ¯!!) #define ITEMSEP "_#" //±¸ºÐÀÚ //#define mapIDVal std::multimap #define mapHash stdext::hash_map #define mapHashIt mapHash::iterator class AKCORE_DLLSPEC CakFileDBHash { public: CakFileDBHash(void); ~CakFileDBHash(void); bool openfile(char* filename); bool savefile(char* filename); void clear(); void setWriteEnter(); //µ¿±âÈ­ °´Ã¼ ½ÃÀÛ void setWriteRelease(); //µ¿±âÈ­ °´Ã¼ ÁßÁö //´ÜÀÏ µ¥ÀÌÅÍ void setItem(char* strKey, char* strVal); void setItem(char* strKey, int nVal); void setItem(char* strKey, float fVal); void setItem(char* strKey, double dVal); void getItem(char* strKey, CString* strVal, char* strDefaultVal = ""); void getItem(char* strKey, char* strVal, char* strDefaultVal = ""); void getItem(char* strKey, int* nVal, int nDefaultVal = 0); void getItem(char* strKey, float* fVal, float fDefaultVal = 0); void getItem(char* strKey, double* dVal, double dDefaultVal = 0); char* getItemPoint(char* strKey); //´ÙÁß µ¥ÀÌÅÍ °ü¸® void setItemClear(char* strKey); int getItemNum(char* strKey); void setItem(int nIndex, char* strKey, char* strVal); void setItem(int nIndex, char* strKey, int nVal); void setItem(int nIndex, char* strKey, float fVal); void setItem(int nIndex, char* strKey, double dVal); void getItem(int nIndex, char* strKey, CString* strVal, char* strDefaultVal = ""); void getItem(int nIndex, char* strKey, char* strVal, char* strDefaultVal = ""); void getItem(int nIndex, char* strKey, int* nVal, int nDefaultVal = 0); void getItem(int nIndex, char* strKey, float* fVal, float fDefaultVal = 0); void getItem(int nIndex, char* strKey, double* dVal, double dDefaultVal = 0); char* getItemPoint(int nIndex, char* strKey); protected: mapHash m_mapData; CRITICAL_SECTION m_csAkFileDB; };