/* ==================================================================== * ÆÄ ÀÏ : CacheBuffer.h * ¸ñ Àû : ij½¬¸¦ °ü¸®Çϱâ À§Áh ¸Þ¸ð¸®¸¦ Á¦°øÇϰí, °Ë»öÀ» Áö¿øÇÑ´Ù. * ÀÛ ¼º ÀÚ : À̹ý¼® * ÀÛ ¼º ÀÏ : 2006.11.10 * * Ãß°¡³»¿ë : * Ãß°¡³¯Â¥ ÀÛ¾÷ÀÚ Ãß°¡³»¿ë * 06.11.10 À̹ý¼® ¹¬Çâ ¼Ò½º ÂüÁ¶ * * ÁÖÀÇ»çÇ× : ±ÛÀÚ ±æÀ̸¦ ¿ÏÀüÀ¯µ¿À¸·Î ÇÒ ¼ö´Â ¾ø´Ù. * ÇÏÁö¸¸, óÀ½ »ý¼º½Ã¿¡ °íÁ¤ »çÀÌÁ º¯°æÇÒ ¼ö ÀÖµµ·Ï Áö¿øÇÑ´Ù. * =================================================================== */ #pragma once #include "CacheTxtHash.h" class cCacheBuffer { public: cCacheBuffer(); ~cCacheBuffer(); /// ÃʱâºÎ ¹× Á¾·áºÎ bool Initialize( unsigned long maxContainerNum, unsigned long maxStringSize ); void Cleanup(); /// Item¿¡ ´ëÇÑ Á¦°ø ÀÎÅÍÆäÀ̽º void* InsertValue( LPTSTR string, unsigned long strSize, HFONT hFont, unsigned long color, void* pValue ); void DeleteValue( void* pHashHandle ); void* SearchValue( LPTSTR string, unsigned long strSize, HFONT hFont, unsigned long color ); protected: sCacheKey* AllocKeyMem(); void FreeKeyMem( sCacheKey* pKey ); protected: /// unsigned long mMaxContainerNum; unsigned long mUsedContainerNum; /// Key ±¸Á¶Ã¼ »çÀÌÁî (sizeof(sCacheKey) - sizeof(char) + maxStringSize) unsigned long mKeyMemSize; /// ³²Àº ŰÀÇ ¾ç unsigned long mReservedKeyNum; /// Cache KeyÀÇ ¾ç¸¸Å­ ¸Þ¸ð¸®¸¦ »ý¼ºÇÑ´Ù. char* mpKeyPool; /// Cache Key Å×À̺í (Á¦°ø µÇ¾îÁú ´ë±â Key) sCacheKey** mpKeyTable; /// cCaheTxtHash* mpHash; sCacheKey* mpSearchKey; };