59 lines
1.7 KiB
C++
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;
|
|
|
|
}; //
|
|
|
|
|