诸暨麻将添加redis
Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.
 
 
 
 
 
 

165 rindas
4.7 KiB

  1. #ifndef SERVICE_UNITS_HEAD_FILE
  2. #define SERVICE_UNITS_HEAD_FILE
  3. #pragma once
  4. #include "Stdafx.h"
  5. #include "InitParameter.h"
  6. #include "AttemperEngineSink.h"
  7. #include "DataBaseEngineSink.h"
  8. #include "DBCorrespondManager.h"
  9. #include "RedisHead.h"
  10. //////////////////////////////////////////////////////////////////////////////////
  11. //网络标示
  12. #define NETWORK_CORRESPOND 1 //协调连接
  13. //消息定义
  14. #define WM_UICONTROL_REQUEST (WM_USER+100) //控制请求
  15. //////////////////////////////////////////////////////////////////////////////////
  16. //枚举定义
  17. //服务状态
  18. enum enServiceStatus
  19. {
  20. ServiceStatus_Stop, //停止状态
  21. ServiceStatus_Config, //配置状态
  22. ServiceStatus_Service, //服务状态
  23. };
  24. //////////////////////////////////////////////////////////////////////////////////
  25. //状态接口
  26. interface IServiceUnitsSink
  27. {
  28. //接口定义
  29. public:
  30. //服务状态
  31. virtual VOID OnServiceUnitsStatus(enServiceStatus ServiceStatus) = NULL;
  32. };
  33. //////////////////////////////////////////////////////////////////////////////////
  34. //服务单元
  35. class CServiceUnits : public CWnd
  36. {
  37. //友元定义
  38. friend class CAttemperEngineSink;
  39. friend class CDataBaseEngineSink;
  40. //状态变量
  41. public:
  42. CInitParameter m_InitParameter; //配置参数
  43. enServiceStatus m_ServiceStatus; //运行状态
  44. //组件配置
  45. protected:
  46. tagGameParameter m_GameParameter; //配置参数
  47. tagDataBaseParameter m_DataBaseParameter; //连接参数
  48. tagGameServiceAttrib m_GameServiceAttrib; //服务属性
  49. tagGameServiceOption m_GameServiceOption; //服务配置
  50. tagGameMatchOption m_GameMatchOption; //比赛信息
  51. std::vector<tagVenueInfo> m_vecVenueInfo; //++场馆信息
  52. //组件变量
  53. private:
  54. CWHDataQueue m_DataQueue; //数据队列
  55. CCriticalSection m_CriticalSection; //同步对象
  56. //服务组件
  57. public:
  58. CAttemperEngineSink m_AttemperEngineSink; //调度钩子
  59. CDataBaseEngineSink m_RecordDataBaseSink[4]; //数据钩子
  60. CDataBaseEngineSink m_KernelDataBaseSink[4]; //数据钩子
  61. //数据组件
  62. public:
  63. CDBCorrespondManager m_DBCorrespondManager; //协调管理
  64. CDataBaseEngineHelper m_RecordDataBaseEngine; //数据引擎
  65. CDataBaseEngineHelper m_KernelDataBaseEngine; //数据引擎
  66. //内核组件
  67. public:
  68. CTimerEngineHelper m_TimerEngine; //时间引擎
  69. CAttemperEngineHelper m_AttemperEngine; //调度引擎
  70. CTCPNetworkEngineHelper m_TCPNetworkEngine; //网络引擎
  71. CTCPSocketServiceHelper m_TCPSocketService; //网络服务
  72. CGameServiceManagerHelper m_GameServiceManager; //游戏模块
  73. CMatchServiceManagerHelper m_MatchServiceManager; //比赛管理
  74. std::shared_ptr<RedisBase> m_RedisClient;//redis
  75. //接口变量
  76. protected:
  77. IServiceUnitsSink * m_pIServiceUnitsSink; //状态接口
  78. //静态变量
  79. public:
  80. static CServiceUnits * g_pServiceUnits; //对象指针
  81. //函数定义
  82. public:
  83. //构造函数
  84. CServiceUnits();
  85. //析构函数
  86. virtual ~CServiceUnits();
  87. //信息函数
  88. public:
  89. //获取状态
  90. enServiceStatus GetServiceStatus() { return m_ServiceStatus; }
  91. //请求控制
  92. public:
  93. //设置接口
  94. bool SetServiceUnitsSink(IServiceUnitsSink * pIServiceUnitsSink);
  95. //投递请求
  96. bool PostControlRequest(WORD wIdentifier, VOID * pData, WORD wDataSize);
  97. //服务控制
  98. public:
  99. //启动服务
  100. bool StartService();
  101. //停止服务
  102. bool ConcludeService();
  103. //游戏配置
  104. bool CollocateService(LPCTSTR pszGameModule, tagGameServiceOption & GameServiceOption, std::vector<tagVenueInfo>& vecVenueInfo);
  105. //游戏配置
  106. bool CollocateService(tagGameMatchOption & GameMatchOption, std::vector<tagVenueInfo>& vecVenueInfo);
  107. tagGameServiceOption* GetGameServiceOption(void) { return &m_GameServiceOption; }
  108. //辅助函数
  109. protected:
  110. //创建模块
  111. bool CreateServiceDLL();
  112. //配置组件
  113. bool InitializeService();
  114. //启动内核
  115. bool StartKernelService();
  116. //启动网络
  117. bool StartNetworkService();
  118. //调整参数
  119. bool RectifyServiceParameter();
  120. //内部函数
  121. private:
  122. //设置状态
  123. bool SetServiceStatus(enServiceStatus ServiceStatus);
  124. //发送控制
  125. bool SendControlPacket(WORD wControlID, VOID * pData, WORD wDataSize);
  126. //连接信息
  127. bool LoadDataBaseParameter(LPCTSTR pszDataBaseAddr, LPCTSTR pszDataBaseName, tagDataBaseParameter & DataBaseParameter);
  128. //消息映射
  129. protected:
  130. //控制消息
  131. LRESULT OnUIControlRequest(WPARAM wParam, LPARAM lParam);
  132. DECLARE_MESSAGE_MAP()
  133. };
  134. //////////////////////////////////////////////////////////////////////////////////
  135. #endif