Files
Sun1602/Tools/WiseClient/Application/VEntryRouter.h
T
2022-10-26 12:25:11 +08:00

59 lines
1.7 KiB
C++

// 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<eWISE_ROUTINES, BaseCodeHandler> 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();
//////////////////////////////////////////////////////////////////////////
// <FIELDs>
private: HANDLER_MAP m_HANDLER_MAP;
}; //