// stdafx.h : ÀÚÁÖ »ç¿ëÇÏÁö¸¸ ÀÚÁÖ º¯°æµÇÁö´Â ¾Ê´Â // Ç¥ÁØ ½Ã½ºÅÛ Æ÷ÇÔ ÆÄÀÏ ¹× ÇÁ·ÎÁ§Æ® °ü·Ã Æ÷ÇÔ ÆÄÀÏÀÌ // µé¾î ÀÖ´Â Æ÷ÇÔ ÆÄÀÏÀÔ´Ï´Ù. // #pragma once ////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////// enum eWISE_ROUTINES { eWISE_ROUTINES_LOGO, eWISE_ROUTINES_INIT_DATA_CENTER, eWISE_ROUTINES_INIT_GLOBAL_VARIALBLES, eWISE_ROUTINES_INIT_GAME_DATAS, eWISE_ROUTINES_INIT_ENGINE, eWISE_ROUTINES_INIT_NETWORK, eWISE_ROUTINES_INIT_START_LOGIC_FLOW, eWISE_ROUTINES_INIT_MAIN_FRAME, eWISE_ROUTINES_INIT_DISPOSER, // eWISE_ROUTINES_MAX, }; #define REGISTER_STEP_HANDLER(eList, handler) \ static BOOL s_b##eList = SolutionRouter::Register(eList, handler) #define DECLARE_BASE_WISE_STEP_FUNCTION() static void BaseFuntionByModule() #define REGISTER_STEP_HANDLER_BASE(eList) \ static BOOL s_b##eList = SolutionRouter::Register(eList, BaseFuntionByModule) ////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////// typedef void (*BaseCodeHandler)(); class SolutionRouter { typedef hash_map HANDLER_MAP; typedef HANDLER_MAP::iterator HANDLER_MAP_IT; private: SolutionRouter() {} public: ~SolutionRouter() {} public: static BOOL Register(eWISE_ROUTINES eList, BaseCodeHandler handler); static BOOL Execute(eWISE_ROUTINES eList); static void DestroyInstance(); private: static SolutionRouter* Instance(); ////////////////////////////////////////////////////////////////////////// // private: HANDLER_MAP m_HANDLER_MAP; }; //