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

90 lines
2.7 KiB
C++

#pragma once
//////////////////////////////////////////////////////////////////////////
class LogicFlowController;
struct ScriptLogicInterface; // ScriptLogic.dll
//////////////////////////////////////////////////////////////////////////
typedef util::cSTRING_BUFFER<MAX_IPADDRESS_SIZE+1> IP_ADDRESS_STRING;
struct sConfigureNetwork
{
DWORD dwVClientCount; // 접속할 클라이언트 개수
IP_ADDRESS_STRING strLocalIP; //
WORD wLocalListenPort; //
IP_ADDRESS_STRING strLoginFrontIP;
WORD wLoginFrontPort;
//
IOHANDLER_DESC InfoIOHANDLER_DESC;
};
struct sDATA_CONTAINER;
typedef WorkLoadContainer<DWORD> LOGIC_FLOW_WORKLOAD_CONTAINER;
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
typedef DWORD ACCOUNT_ID_T;
#define INVALID_ACCOUNT_ID ((ACCOUNT_ID_T)-1)
//////////////////////////////////////////////////////////////////////////
/////
class Manipulater
{
friend static void Manipulater_BaseFuntionByModule();
//
public: static const CHAR* CONFIG_NETWORK_FILENAME;
static const CHAR* CONFIG_ACCOUNT_INFO_FILENAME;
//////////////////////////////////////////////////////////////////////////
static const CHAR* CONFIG_ENGINE_3DENGINE_TERRAIN;
static const CHAR* CONFIG_ENGINE_NUMERIC;
private: Manipulater();
~Manipulater();
// <INTERFACEs>
public: static sConfigureNetwork* GetNetworkArguments();
static ScriptLogicInterface* GetScriptLogicInterface();
static IOCPServer*& IOCPServerREF();
static LogicFlowController* AllocLogicFlowController();
static void FreeLogicFlowController(LogicFlowController* pLogic);
// Manipulator 일괄 초기화...로?
static void CreateLogicFlowByWiseMode();
static ACCOUNT_ID_T AllocNewAccount();
static BOOL FreeAccount(ACCOUNT_ID_T accountID);
//////////////////////////////////////////////////////////////////////////
// <3D Engine
//public: static BOOL Register3DEngine_Terrain(HINSTANCE hDLL, FUNC_ContactTerrain fn, CLoadHelper* pLoadHelper);
// static FUNC_ContactTerrain InterfaceOf3DTerrain();
// static CLoadHelper* InterfaceOfLoadHelper();
private: static void _Initalize_AccountInfo();
private: static Manipulater* ms_pInstance;
};
//
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
//
struct sSIGNAL_BUFFER
{
typedef MSG_BUFFER<4096> sSIGNAL_BUFFER_DATA;
template<typename _TY>
inline static _TY& InstanceOf()
{ return BUFFER.InstanceOf<_TY>(); }
static sSIGNAL_BUFFER_DATA BUFFER;
};
//
//////////////////////////////////////////////////////////////////////////