Files
wnmj/Servers/服务器组件/协调服务器/AttemperEngineSink.h

151 lines
4.1 KiB
C
Raw Normal View History

2026-02-13 14:34:15 +08:00
#ifndef ATTEMPER_ENGINE_SINK_HEAD_FILE
#define ATTEMPER_ENGINE_SINK_HEAD_FILE
#pragma once
#include "Stdafx.h"
#include "InitParameter.h"
#include "GlobalInfoManager.h"
//////////////////////////////////////////////////////////////////////////////////
//<2F><><EFBFBD>ݶ<EFBFBD><DDB6><EFBFBD>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
enum enServiceKind
{
ServiceKind_None, //<2F><>Ч<EFBFBD><D0A7><EFBFBD><EFBFBD>
ServiceKind_Game, //<2F><>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD>
ServiceKind_Plaza, //<2F><EFBFBD><E3B3A1><EFBFBD><EFBFBD>
};
//<2F>󶨲<EFBFBD><F3B6A8B2><EFBFBD>
struct tagBindParameter
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DWORD dwSocketID; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʶ
DWORD dwClientAddr; //<2F><><EFBFBD>ӵ<EFBFBD>ַ
DWORD dwActiveTime; //<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
WORD wServiceID; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʶ
enServiceKind ServiceKind; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
};
//<2F><><EFBFBD><EFBFBD><E9B6A8>
typedef CWHArray<WORD> CWordArrayTemplate;
//////////////////////////////////////////////////////////////////////////////////
//<2F><><EFBFBD>ȹ<EFBFBD><C8B9><EFBFBD>
class CAttemperEngineSink : public IAttemperEngineSink
{
//<2F><>Ԫ<EFBFBD><D4AA><EFBFBD><EFBFBD>
friend class CServiceUnits;
//״̬<D7B4><CCAC><EFBFBD><EFBFBD>
protected:
WORD m_wCollectItem; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CWordArrayTemplate m_WaitCollectItemArray; //<2F><><EFBFBD>ܵȴ<DCB5>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
protected:
CInitParameter * m_pInitParameter; //<2F><><EFBFBD>ò<EFBFBD><C3B2><EFBFBD>
tagBindParameter * m_pBindParameter; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
protected:
CGlobalInfoManager m_GlobalInfoManager; //ȫ<>ֹ<EFBFBD><D6B9><EFBFBD>
//<2F><><EFBFBD><EFBFBD><EFBFBD>ӿ<EFBFBD>
protected:
ITimerEngine * m_pITimerEngine; //ʱ<><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
ITCPNetworkEngine * m_pITCPNetworkEngine; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
public:
//<2F><><EFBFBD><EFBFBD><ECBAAF>
CAttemperEngineSink();
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
virtual ~CAttemperEngineSink();
//<2F><><EFBFBD><EFBFBD><EFBFBD>ӿ<EFBFBD>
public:
//<2F>ͷŶ<CDB7><C5B6><EFBFBD>
virtual VOID Release() { return; }
//<2F>ӿڲ<D3BF>ѯ
virtual VOID * QueryInterface(REFGUID Guid, DWORD dwQueryVer);
//<2F><EFBFBD>ӿ<EFBFBD>
public:
//<2F><><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD>
virtual bool OnAttemperEngineStart(IUnknownEx * pIUnknownEx);
//ֹͣ<CDA3>¼<EFBFBD>
virtual bool OnAttemperEngineConclude(IUnknownEx * pIUnknownEx);
//<2F>¼<EFBFBD><C2BC>ӿ<EFBFBD>
public:
//<2F><><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD>
virtual bool OnEventControl(WORD wIdentifier, VOID * pData, WORD wDataSize);
//<2F>Զ<EFBFBD><D4B6>¼<EFBFBD>
virtual bool OnEventAttemperData(WORD wRequestID, VOID * pData, WORD wDataSize);
//<2F>ں<EFBFBD><DABA>¼<EFBFBD>
public:
//ʱ<><CAB1><EFBFBD>¼<EFBFBD>
virtual bool OnEventTimer(DWORD dwTimerID, WPARAM wBindParam);
//<2F><><EFBFBD>ݿ<EFBFBD><DDBF>¼<EFBFBD>
virtual bool OnEventDataBase(WORD wRequestID, DWORD dwContextID, VOID * pData, WORD wDataSize);
//<2F><><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD>
public:
//<2F><><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD>
virtual bool OnEventTCPSocketLink(WORD wServiceID, INT nErrorCode);
//<2F>ر<EFBFBD><D8B1>¼<EFBFBD>
virtual bool OnEventTCPSocketShut(WORD wServiceID, BYTE cbShutReason);
//<2F><>ȡ<EFBFBD>¼<EFBFBD>
virtual bool OnEventTCPSocketRead(WORD wServiceID, TCP_Command Command, VOID * pData, WORD wDataSize);
//<2F><><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD>
public:
//Ӧ<><D3A6><EFBFBD>¼<EFBFBD>
virtual bool OnEventTCPNetworkBind(DWORD dwClientAddr, DWORD dwSocketID);
//<2F>ر<EFBFBD><D8B1>¼<EFBFBD>
virtual bool OnEventTCPNetworkShut(DWORD dwClientAddr, DWORD dwActiveTime, DWORD dwSocketID);
//<2F><>ȡ<EFBFBD>¼<EFBFBD>
virtual bool OnEventTCPNetworkRead(TCP_Command Command, VOID * pData, WORD wDataSize, DWORD dwSocketID);
//<2F><><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD>
protected:
//ע<><D7A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
bool OnTCPNetworkMainRegister(WORD wSubCmdID, VOID * pData, WORD wDataSize, DWORD dwSocketID);
//<2F><><EFBFBD><EFBFBD>״̬
bool OnTCPNetworkMainServiceInfo(WORD wSubCmdID, VOID * pData, WORD wDataSize, DWORD dwSocketID);
//<2F>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>
bool OnTCPNetworkMainUserCollect(WORD wSubCmdID, VOID * pData, WORD wDataSize, DWORD dwSocketID);
//Զ<>̷<EFBFBD><CCB7><EFBFBD>
bool OnTCPNetworkMainRemoteService(WORD wSubCmdID, VOID * pData, WORD wDataSize, DWORD dwSocketID);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
bool OnTCPNetworkMainManagerService(WORD wSubCmdID, VOID * pData, WORD wDataSize, DWORD dwSocketID);
//<2F><>վ<EFBFBD><D5BE><EFBFBD>ط<EFBFBD><D8B7><EFBFBD>
bool OnTCPNetworkMainWebService(WORD wSubCmdID, VOID * pData, WORD wDataSize, DWORD dwSocketID);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
protected:
//<2F><><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>
bool SendServerListItem(DWORD dwSocketID);
//<2F><><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>
bool SendMatchListItem(DWORD dwSocketID);
//<2F><><EFBFBD>ݷ<EFBFBD><DDB7><EFBFBD>
protected:
//<2F><><EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD>
bool SendDataToKindGame(WORD wKindID, WORD wMainCmdID, WORD wSubCmdID, VOID * pData, WORD wDataSize);
//<2F><><EFBFBD><EFBFBD><E4B7A2>
bool SendDataToGame(WORD wServerID, WORD wMainCmdID, WORD wSubCmdID, VOID * pData, WORD wDataSize);
//<2F>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>
bool SendDataToUser(WORD wServerID, DWORD dwUserID, WORD wMainCmdID, WORD wSubCmdID, VOID * pData, WORD wDataSize);
};
//////////////////////////////////////////////////////////////////////////////////
#endif