诸暨麻将添加redis
Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
 
 
 
 
 
 

156 строки
4.7 KiB

  1. #ifndef ATTEMPER_ENGINE_SINK_HEAD_FILE
  2. #define ATTEMPER_ENGINE_SINK_HEAD_FILE
  3. #pragma once
  4. #include "Stdafx.h"
  5. #include "InitParameter.h"
  6. #include "GlobalInfoManager.h"
  7. //////////////////////////////////////////////////////////////////////////////////
  8. //数据定义
  9. //服务类型
  10. enum enServiceKind
  11. {
  12. ServiceKind_None, //无效服务
  13. ServiceKind_Game, //游戏服务
  14. ServiceKind_Plaza, //广场服务
  15. };
  16. //绑定参数
  17. struct tagBindParameter
  18. {
  19. //网络数据
  20. DWORD dwSocketID; //网络标识
  21. DWORD dwClientAddr; //连接地址
  22. DWORD dwActiveTime; //激活时间
  23. //附加数据
  24. WORD wServiceID; //服务标识
  25. enServiceKind ServiceKind; //服务类型
  26. };
  27. //数组定义
  28. typedef CWHArray<WORD> CWordArrayTemplate;
  29. //////////////////////////////////////////////////////////////////////////////////
  30. //调度钩子
  31. class CAttemperEngineSink : public IAttemperEngineSink
  32. {
  33. //友元定义
  34. friend class CServiceUnits;
  35. friend class CGlobalInfoManager;
  36. //状态变量
  37. protected:
  38. WORD m_wCollectItem; //汇总连接
  39. CWordArrayTemplate m_WaitCollectItemArray; //汇总等待
  40. //变量定义
  41. protected:
  42. CInitParameter * m_pInitParameter; //配置参数
  43. tagBindParameter * m_pBindParameter; //辅助数组
  44. //组件变量
  45. public:
  46. CGlobalInfoManager m_GlobalInfoManager; //全局管理
  47. CMap<int, int, HTREEITEM, HTREEITEM> m_ServiceIDMap; //游戏服务器菜单记录
  48. CMap<int, int, HTREEITEM, HTREEITEM> m_LoginServiceIDMap; //游戏登录服务器菜单记录
  49. //组件接口
  50. protected:
  51. ITimerEngine * m_pITimerEngine; //时间引擎
  52. ITCPNetworkEngine * m_pITCPNetworkEngine; //网络引擎
  53. //函数定义
  54. public:
  55. //构造函数
  56. CAttemperEngineSink();
  57. //析构函数
  58. virtual ~CAttemperEngineSink();
  59. //基础接口
  60. public:
  61. //释放对象
  62. virtual VOID Release() { return; }
  63. //接口查询
  64. virtual VOID * QueryInterface(REFGUID Guid, DWORD dwQueryVer);
  65. //异步接口
  66. public:
  67. //启动事件
  68. virtual bool OnAttemperEngineStart(IUnknownEx * pIUnknownEx);
  69. //停止事件
  70. virtual bool OnAttemperEngineConclude(IUnknownEx * pIUnknownEx);
  71. //事件接口
  72. public:
  73. //控制事件
  74. virtual bool OnEventControl(WORD wIdentifier, VOID * pData, WORD wDataSize);
  75. //自定事件
  76. virtual bool OnEventAttemperData(WORD wRequestID, VOID * pData, WORD wDataSize);
  77. //同步事件
  78. virtual bool OnTongBu(int Command, DWORD dwContextID, VOID * pData, WORD wDataSize);
  79. //内核事件
  80. public:
  81. //时间事件
  82. virtual bool OnEventTimer(DWORD dwTimerID, WPARAM wBindParam);
  83. //数据库事件
  84. virtual bool OnEventDataBase(WORD wRequestID, DWORD dwContextID, VOID * pData, WORD wDataSize);
  85. //连接事件
  86. public:
  87. //连接事件
  88. virtual bool OnEventTCPSocketLink(WORD wServiceID, INT nErrorCode);
  89. //关闭事件
  90. virtual bool OnEventTCPSocketShut(WORD wServiceID, BYTE cbShutReason);
  91. //读取事件
  92. virtual bool OnEventTCPSocketRead(WORD wServiceID, TCP_Command Command, VOID * pData, WORD wDataSize);
  93. //网络事件
  94. public:
  95. //应答事件
  96. virtual bool OnEventTCPNetworkBind(DWORD dwClientAddr, DWORD dwSocketID);
  97. //关闭事件
  98. virtual bool OnEventTCPNetworkShut(DWORD dwClientAddr, DWORD dwActiveTime, DWORD dwSocketID);
  99. //读取事件
  100. virtual bool OnEventTCPNetworkRead(TCP_Command Command, VOID * pData, WORD wDataSize, DWORD dwSocketID);
  101. //网络事件
  102. protected:
  103. //注册服务
  104. bool OnTCPNetworkMainRegister(WORD wSubCmdID, VOID * pData, WORD wDataSize, DWORD dwSocketID);
  105. //服务状态
  106. bool OnTCPNetworkMainServiceInfo(WORD wSubCmdID, VOID * pData, WORD wDataSize, DWORD dwSocketID);
  107. //用户汇总
  108. bool OnTCPNetworkMainUserCollect(WORD wSubCmdID, VOID * pData, WORD wDataSize, DWORD dwSocketID);
  109. //远程服务
  110. bool OnTCPNetworkMainRemoteService(WORD wSubCmdID, VOID * pData, WORD wDataSize, DWORD dwSocketID);
  111. //管理服务
  112. bool OnTCPNetworkMainManagerService(WORD wSubCmdID, VOID * pData, WORD wDataSize, DWORD dwSocketID);
  113. //机器服务
  114. //bool OnTCPNetworkMainAndroidService(WORD wSubCmdID, VOID * pData, WORD wDataSize, DWORD dwSocketID);
  115. //辅助函数
  116. protected:
  117. //发送列表
  118. bool SendServerListItem(DWORD dwSocketID);
  119. //发送列表
  120. bool SendMatchListItem(DWORD dwSocketID);
  121. //发送私人房间列表总会
  122. bool SendPrivateListItem(DWORD dwSocketID);
  123. //数据发送
  124. protected:
  125. //房间发送
  126. bool SendDataToGame(WORD wServerID, WORD wMainCmdID, WORD wSubCmdID, VOID * pData, WORD wDataSize);
  127. //登录失败
  128. bool SendLogonFailure(LPCTSTR pszString, LONG lErrorCode, DWORD dwSocketID);
  129. };
  130. //////////////////////////////////////////////////////////////////////////////////
  131. #endif