诸暨麻将添加redis
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

133 line
3.2 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. //////////////////////////////////////////////////////////////////////////////////
  9. //网络标示
  10. #define NETWORK_CORRESPOND 1 //登录连接
  11. //消息定义
  12. #define WM_UICONTROL_REQUEST (WM_USER+100) //控制请求
  13. //////////////////////////////////////////////////////////////////////////////////
  14. //枚举定义
  15. //服务状态
  16. enum enServiceStatus
  17. {
  18. ServiceStatus_Stop, //停止状态
  19. ServiceStatus_Config, //配置状态
  20. ServiceStatus_Service, //服务状态
  21. };
  22. //////////////////////////////////////////////////////////////////////////////////
  23. //状态接口
  24. interface IServiceUnitsSink
  25. {
  26. //接口定义
  27. public:
  28. //服务状态
  29. virtual VOID OnServiceUnitsStatus(enServiceStatus ServiceStatus) = NULL;
  30. };
  31. //////////////////////////////////////////////////////////////////////////////////
  32. //服务单元
  33. class CServiceUnits : public CWnd
  34. {
  35. //友元定义
  36. friend class CAttemperEngineSink;
  37. friend class CDataBaseEngineSink;
  38. friend class CLogonServerDlg;
  39. //状态变量
  40. protected:
  41. enServiceStatus m_ServiceStatus; //运行状态
  42. //配置组件
  43. public:
  44. CInitParameter m_InitParameter; //配置参数
  45. //组件变量
  46. private:
  47. CWHDataQueue m_DataQueue; //数据队列
  48. CCriticalSection m_CriticalSection; //同步对象
  49. //服务组件
  50. public:
  51. CAttemperEngineSink m_AttemperEngineSink; //调度钩子
  52. CDataBaseEngineSink m_DataBaseEngineSink[4]; //数据钩子
  53. //内核组件
  54. protected:
  55. CTimerEngineHelper m_TimerEngine; //时间引擎
  56. CAttemperEngineHelper m_AttemperEngine; //调度引擎
  57. CDataBaseEngineHelper m_DataBaseEngine; //数据引擎
  58. CTCPNetworkEngineHelper m_TCPNetworkEngine; //网络引擎
  59. CTCPSocketServiceHelper m_TCPSocketService; //协调服务
  60. //接口变量
  61. protected:
  62. IServiceUnitsSink * m_pIServiceUnitsSink; //状态接口
  63. //静态变量
  64. public:
  65. static CServiceUnits * g_pServiceUnits; //对象指针
  66. //函数定义
  67. public:
  68. //构造函数
  69. CServiceUnits();
  70. //析构函数
  71. virtual ~CServiceUnits();
  72. //信息函数
  73. public:
  74. //获取状态
  75. enServiceStatus GetServiceStatus() { return m_ServiceStatus; }
  76. //服务控制
  77. public:
  78. //启动服务
  79. bool StartService();
  80. //停止服务
  81. bool ConcludeService();
  82. //设置接口
  83. bool SetServiceUnitsSink(IServiceUnitsSink * pIServiceUnitsSink);
  84. //投递请求
  85. bool PostControlRequest(WORD wIdentifier, VOID * pData, WORD wDataSize);
  86. //辅助函数
  87. protected:
  88. //配置组件
  89. bool InitializeService();
  90. //启动内核
  91. bool StartKernelService();
  92. //启动网络
  93. bool StartNetworkService();
  94. //内部函数
  95. private:
  96. //设置状态
  97. bool SetServiceStatus(enServiceStatus ServiceStatus);
  98. //发送控制
  99. bool SendControlPacket(WORD wControlID, VOID * pData, WORD wDataSize);
  100. //消息映射
  101. protected:
  102. //控制消息
  103. LRESULT OnUIControlRequest(WPARAM wParam, LPARAM lParam);
  104. DECLARE_MESSAGE_MAP()
  105. };
  106. //////////////////////////////////////////////////////////////////////////////////
  107. #endif