#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