诸暨麻将添加redis
選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。
 
 
 
 
 
 

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