#ifndef __QUERY_POOL_FACTORY_H__ #define __QUERY_POOL_FACTORY_H__ #pragma once #include "QueryPoolFactoryDefine.h" //======================================================================================================================= /// Äõ¸®Ç®À» °ü¸®ÇÏ´Â ÆÑÅ丮 Ŭ·¡½º /** @author Kim Min Wook < taiyo@webzen.co.kr > @since 2004. 10. 20 @remarks - Äõ¸®µéÀ» Ç®·Î ¸¸µé¾î¼­ µ¿ÀûÇÒ´çÀ» ¾ø¾Ö°í ¼º´ÉÀ» ³ô¿´´Ù. - Æí¸®ÇÏ°Ô Ãß°¡Çϱâ À§ÇØ ½ºÅ©¸³Æ®·Î ÀÛ¼ºÇß´Ù. - Thread-SafeÇÑ Alloc()°ú Free() @note - Ãß°¡ÇÒ¶§´Â ´ÙÀ½°ú °°Àº ¼øÀ¸·Î Ãß°¡ÇÑ´Ù. 1. I_POOL_ENTRY( Äõ¸® Ŭ·¡½º, ±âº» Ç® °³¼ö, È®Àå Ç® °³¼ö ) 2. R_POOL_ENTITY( Äõ¸® Ŭ·¡½º ) 3. IMPLEMENT_POOL_ENTITY( Äõ¸® Ŭ·¡½º ) - »ç¿ëÇÒ¶§´Â 1. ÇÒ´ç : QUERYALLOC( Äõ¸® Ŭ·¡½º ) 2. ÇØÁ¦ : QUERYFREE( Äõ¸® Ŭ·¡½º, Ŭ·¡½º °´Ã¼ ) @history - ~2011.04.29, custom version - 2011.04.29, waverix, changes to more simple registering methodology */ //================================================================================================== #include #include //================================================================================================== // namespace nsQuery { ; class QueryPoolFactory { public: template static bool RegisterPool( QueryPoolType** query_type_holder, const char* type_name_string); static bool CheckPoolAlarm(); private: static const int kAlarmCheckInterval; struct AlarmNode : public util::__LList { util::SafeMemoryPoolFactoryShared* pool_base; }; // QueryPoolFactory(); ~QueryPoolFactory(); // static bool RegisterInternal(util::SafeMemoryPoolFactoryShared* pool_base, const char* type_name_string); // util::__LList root_; util::ITimerBase alarm_check_timer_; static QueryPoolFactory* instance_reference_; }; //================================================================================================== }; //end of namespace //================================================================================================== template inline bool nsQuery::QueryPoolFactory::RegisterPool( QueryPoolType** query_type_holder, const char* type_name_string) { static QueryPoolType query_pool_type; *query_type_holder = &query_pool_type; return RegisterInternal(&query_pool_type, type_name_string); } //================================================================================================== #endif // __QUERY_POOL_FACTORY_H__