Files
wnmj/Servers/服务器组件/登录服务器/AttemperEngineSink.h
2026-02-13 14:34:15 +08:00

235 lines
7.2 KiB
C++

#ifndef ATTEMPER_ENGINE_SINK_HEAD_FILE
#define ATTEMPER_ENGINE_SINK_HEAD_FILE
#pragma once
#include "Stdafx.h"
#include "InitParameter.h"
#include "ServerListManager.h"
//////////////////////////////////////////////////////////////////////////////////
//数据定义
//连接类型
#define CLIENT_KIND_FALSH 1 //网页类型
#define CLIENT_KIND_MOBILE 2 //手机类型
#define CLIENT_KIND_COMPUTER 3 //电脑类型
//绑定参数
struct tagBindParameter
{
//网络参数
DWORD dwSocketID; //网络标识
DWORD dwClientAddr; //连接地址
DWORD dwActiveTime; //激活时间
//连接信息
WORD wModuleID; //模块标识
BYTE cbClientKind; //连接类型
DWORD dwPlazaVersion; //大厅版本
};
//低保参数
struct tagBaseEnsureParameter
{
SCORE lScoreCondition; //游戏币条件
SCORE lScoreAmount; //游戏币数量
BYTE cbTakeTimes; //领取次数
};
//////////////////////////////////////////////////////////////////////////////////
//调度钩子
class CAttemperEngineSink : public IAttemperEngineSink
{
//友元定义
friend class CServiceUnits;
//状态变量
protected:
bool m_bNeekCorrespond; //协调标志
bool m_bShowServerStatus; //显示服务器状态
//变量定义
protected:
CInitParameter * m_pInitParameter; //配置参数
tagBindParameter * m_pBindParameter; //辅助数组
//组件变量
protected:
CServerListManager m_ServerListManager; //列表管理
CMD_GP_CheckInInfo m_kCheckInInfo; //签到奖励
CMD_GP_BeginnerInfo m_kBeginnerInfo; //新手活动
CMD_GP_BackAddBankAwardInfo m_BackAddBankAwardInfo; //赚金榜奖励
tagBaseEnsureParameter m_BaseEnsureParameter; //低保参数
//组件接口
protected:
ITimerEngine * m_pITimerEngine; //时间引擎
IDataBaseEngine * m_pIDataBaseEngine; //数据引擎
ITCPNetworkEngine * m_pITCPNetworkEngine; //网络引擎
ITCPSocketService * m_pITCPSocketService; //协调服务
//视频配置
protected:
WORD m_wAVServerPort; //视频端口
DWORD m_dwAVServerAddr; //视频地址
//函数定义
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);
//内核事件
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 OnTCPSocketMainRegister(WORD wSubCmdID, VOID * pData, WORD wDataSize);
//服务信息
bool OnTCPSocketMainServiceInfo(WORD wSubCmdID, VOID * pData, WORD wDataSize);
//远程服务
bool OnTCPSocketMainRemoteService(WORD wSubCmdID, VOID * pData, WORD wDataSize);
//网络事件
protected:
//登录处理
bool OnTCPNetworkMainPCLogon(WORD wSubCmdID, VOID * pData, WORD wDataSize, DWORD dwSocketID);
//列表处理
bool OnTCPNetworkMainPCServerList(WORD wSubCmdID, VOID * pData, WORD wDataSize, DWORD dwSocketID);
//服务处理
bool OnTCPNetworkMainPCUserService(WORD wSubCmdID, VOID * pData, WORD wDataSize, DWORD dwSocketID);
//远程处理
bool OnTCPNetworkMainPCRemoteService(WORD wSubCmdID, VOID * pData, WORD wDataSize, DWORD dwSocketID);
//网络事件
protected:
//帐号登录
bool OnTCPNetworkSubPCLogonAccounts(VOID * pData, WORD wDataSize, DWORD dwSocketID);
//帐号注册
bool OnTCPNetworkSubPCRegisterAccounts(VOID * pData, WORD wDataSize, DWORD dwSocketID);
//游戏事件
protected:
//登录成功
bool OnDBPCLogonSuccess(DWORD dwContextID, VOID * pData, WORD wDataSize);
//登录失败
bool OnDBPCLogonFailure(DWORD dwContextID, VOID * pData, WORD wDataSize);
//用户信息
bool OnDBPCUserIndividual(DWORD dwContextID, VOID * pData, WORD wDataSize);
//用户个人信息
bool OnDBPCUserAccountInfo(DWORD dwContextID, VOID * pData, WORD wDataSize);
//游戏状态
bool OnDBPCInGameSevrerID(DWORD dwContextID, VOID * pData, WORD wDataSize);
//微信分享成功
bool OnDBPCUserWXShareReward(DWORD dwContextID, VOID * pData, WORD wDataSize);
//操作成功
bool OnDBPCOperateSuccess(DWORD dwContextID, VOID * pData, WORD wDataSize);
//操作失败
bool OnDBPCOperateFailure(DWORD dwContextID, VOID * pData, WORD wDataSize);
VOID SendOperateFailure(DWORD dwContextID, LONG lResultCode, LPCTSTR pszDescribe);
//列表事件
protected:
//游戏种类
bool OnDBPCGameTypeItem(DWORD dwContextID, VOID * pData, WORD wDataSize);
//游戏类型
bool OnDBPCGameKindItem(DWORD dwContextID, VOID * pData, WORD wDataSize);
//游戏节点
bool OnDBPCGameNodeItem(DWORD dwContextID, VOID * pData, WORD wDataSize);
//游戏定制
bool OnDBPCGamePageItem(DWORD dwContextID, VOID * pData, WORD wDataSize);
//游戏列表
bool OnDBPCGameListResult(DWORD dwContextID, VOID * pData, WORD wDataSize);
//游戏记录
bool OnDBPCGameRecordList(DWORD dwContextID, VOID * pData, WORD wDataSize);
//游戏记录
bool OnDBPCGameRecordTotal(DWORD dwContextID, VOID * pData, WORD wDataSize);
//分享回放
bool OnDBPCGameRecordChild(DWORD dwContextID, VOID * pData, WORD wDataSize);
//在那些比赛中;
bool OnDBPCQueryInMatch(DWORD dwContextID, VOID * pData, WORD wDataSize);
//在工会中;
bool OnDBPCQueryInUnion(DWORD dwContextID, VOID * pData, WORD wDataSize);
//所在工会列表;
bool OnDBPCUnionList(DWORD dwContextID, VOID * pData, WORD wDataSize);
//工会开放游戏列表;
bool OnDBPCUnionGameList(DWORD dwContextID, VOID * pData, WORD wDataSize);
//工会房间列表;
bool OnDBPCUnionRoomList(DWORD dwContextID, VOID * pData, WORD wDataSize);
//自动创建房间列表;
bool OnDBPCAutoRoomList(DWORD dwContextID, VOID * pData, WORD wDataSize);
//辅助函数
protected:
//版本检测
bool CheckPlazaVersion(BYTE cbDeviceType, DWORD dwPlazaVersion, DWORD dwSocketID, bool bCheckLowVer=true);
//发送请求
bool SendUIControlPacket(WORD wRequestID, VOID * pData, WORD wDataSize);
//发送列表
protected:
//发送类型
VOID SendGameTypeInfo(DWORD dwSocketID);
//发送种类
VOID SendGameKindInfo(DWORD dwSocketID);
//发送节点
VOID SendGameNodeInfo(DWORD dwSocketID, WORD wKindID);
//发送定制
VOID SendGamePageInfo(DWORD dwSocketID, WORD wKindID);
//发送房间
VOID SendGameServerInfo(DWORD dwSocketID, WORD wKindID);
};
//////////////////////////////////////////////////////////////////////////////////
#endif