诸暨麻将添加redis
Du kannst nicht mehr als 25 Themen auswählen Themen müssen entweder mit einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.
 
 
 
 
 
 

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