|
- #ifndef ATTEMPER_ENGINE_SINK_HEAD_FILE
- #define ATTEMPER_ENGINE_SINK_HEAD_FILE
-
- #pragma once
-
- #include "Stdafx.h"
- #include "InitParameter.h"
- #include "GlobalInfoManager.h"
-
- //////////////////////////////////////////////////////////////////////////////////
- //数据定义
-
- //服务类型
- enum enServiceKind
- {
- ServiceKind_None, //无效服务
- ServiceKind_Game, //游戏服务
- ServiceKind_Plaza, //广场服务
- };
-
- //绑定参数
- struct tagBindParameter
- {
- //网络数据
- DWORD dwSocketID; //网络标识
- DWORD dwClientAddr; //连接地址
- DWORD dwActiveTime; //激活时间
-
- //附加数据
- WORD wServiceID; //服务标识
- enServiceKind ServiceKind; //服务类型
- };
-
- //数组定义
- typedef CWHArray<WORD> CWordArrayTemplate;
-
- //////////////////////////////////////////////////////////////////////////////////
-
- //调度钩子
- class CAttemperEngineSink : public IAttemperEngineSink
- {
- //友元定义
- friend class CServiceUnits;
- friend class CGlobalInfoManager;
-
- //状态变量
- protected:
- WORD m_wCollectItem; //汇总连接
- CWordArrayTemplate m_WaitCollectItemArray; //汇总等待
-
- //变量定义
- protected:
- CInitParameter * m_pInitParameter; //配置参数
- tagBindParameter * m_pBindParameter; //辅助数组
-
- //组件变量
- public:
- CGlobalInfoManager m_GlobalInfoManager; //全局管理
- CMap<int, int, HTREEITEM, HTREEITEM> m_ServiceIDMap; //游戏服务器菜单记录
- CMap<int, int, HTREEITEM, HTREEITEM> m_LoginServiceIDMap; //游戏登录服务器菜单记录
- //组件接口
- protected:
- ITimerEngine * m_pITimerEngine; //时间引擎
- ITCPNetworkEngine * m_pITCPNetworkEngine; //网络引擎
-
- //函数定义
- public:
- //构造函数
- CAttemperEngineSink();
- //析构函数
- virtual ~CAttemperEngineSink();
-
- //基础接口
- public:
- //释放对象
- virtual VOID Release() { return; }
- //接口查询
- virtual VOID * QueryInterface(REFGUID Guid, DWORD dwQueryVer);
-
- //异步接口
- public:
- //启动事件
- virtual bool OnAttemperEngineStart(IUnknownEx * pIUnknownEx);
- //停止事件
- virtual bool OnAttemperEngineConclude(IUnknownEx * pIUnknownEx);
-
- //事件接口
- public:
- //控制事件
- virtual bool OnEventControl(WORD wIdentifier, VOID * pData, WORD wDataSize);
- //自定事件
- virtual bool OnEventAttemperData(WORD wRequestID, VOID * pData, WORD wDataSize);
- //同步事件
- virtual bool OnTongBu(int Command, DWORD dwContextID, VOID * pData, WORD wDataSize);
- //内核事件
- public:
- //时间事件
- virtual bool OnEventTimer(DWORD dwTimerID, WPARAM wBindParam);
- //数据库事件
- virtual bool OnEventDataBase(WORD wRequestID, DWORD dwContextID, VOID * pData, WORD wDataSize);
-
- //连接事件
- public:
- //连接事件
- virtual bool OnEventTCPSocketLink(WORD wServiceID, INT nErrorCode);
- //关闭事件
- virtual bool OnEventTCPSocketShut(WORD wServiceID, BYTE cbShutReason);
- //读取事件
- virtual bool OnEventTCPSocketRead(WORD wServiceID, TCP_Command Command, VOID * pData, WORD wDataSize);
-
- //网络事件
- public:
- //应答事件
- virtual bool OnEventTCPNetworkBind(DWORD dwClientAddr, DWORD dwSocketID);
- //关闭事件
- virtual bool OnEventTCPNetworkShut(DWORD dwClientAddr, DWORD dwActiveTime, DWORD dwSocketID);
- //读取事件
- virtual bool OnEventTCPNetworkRead(TCP_Command Command, VOID * pData, WORD wDataSize, DWORD dwSocketID);
-
- //网络事件
- protected:
- //注册服务
- bool OnTCPNetworkMainRegister(WORD wSubCmdID, VOID * pData, WORD wDataSize, DWORD dwSocketID);
- //服务状态
- bool OnTCPNetworkMainServiceInfo(WORD wSubCmdID, VOID * pData, WORD wDataSize, DWORD dwSocketID);
- //用户汇总
- bool OnTCPNetworkMainUserCollect(WORD wSubCmdID, VOID * pData, WORD wDataSize, DWORD dwSocketID);
- //远程服务
- bool OnTCPNetworkMainRemoteService(WORD wSubCmdID, VOID * pData, WORD wDataSize, DWORD dwSocketID);
- //管理服务
- bool OnTCPNetworkMainManagerService(WORD wSubCmdID, VOID * pData, WORD wDataSize, DWORD dwSocketID);
- //机器服务
- //bool OnTCPNetworkMainAndroidService(WORD wSubCmdID, VOID * pData, WORD wDataSize, DWORD dwSocketID);
-
- //辅助函数
- protected:
- //发送列表
- bool SendServerListItem(DWORD dwSocketID);
- //发送列表
- bool SendMatchListItem(DWORD dwSocketID);
- //发送私人房间列表总会
- bool SendPrivateListItem(DWORD dwSocketID);
-
- //数据发送
- protected:
- //房间发送
- bool SendDataToGame(WORD wServerID, WORD wMainCmdID, WORD wSubCmdID, VOID * pData, WORD wDataSize);
-
- //登录失败
- bool SendLogonFailure(LPCTSTR pszString, LONG lErrorCode, DWORD dwSocketID);
-
- };
-
- //////////////////////////////////////////////////////////////////////////////////
-
- #endif
|