诸暨麻将添加redis
25'ten fazla konu seçemezsiniz Konular bir harf veya rakamla başlamalı, kısa çizgiler ('-') içerebilir ve en fazla 35 karakter uzunluğunda olabilir.
 
 
 
 
 
 

135 satır
3.3 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 "RedisHead.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. friend class CLogonServerDlg;
  40. //状态变量
  41. protected:
  42. enServiceStatus m_ServiceStatus; //运行状态
  43. //配置组件
  44. public:
  45. CInitParameter m_InitParameter; //配置参数
  46. //组件变量
  47. private:
  48. CWHDataQueue m_DataQueue; //数据队列
  49. CCriticalSection m_CriticalSection; //同步对象
  50. //服务组件
  51. public:
  52. CAttemperEngineSink m_AttemperEngineSink; //调度钩子
  53. CDataBaseEngineSink m_DataBaseEngineSink[4]; //数据钩子
  54. //内核组件
  55. protected:
  56. CTimerEngineHelper m_TimerEngine; //时间引擎
  57. CAttemperEngineHelper m_AttemperEngine; //调度引擎
  58. CDataBaseEngineHelper m_DataBaseEngine; //数据引擎
  59. CTCPNetworkEngineHelper m_TCPNetworkEngine; //网络引擎
  60. CTCPSocketServiceHelper m_TCPSocketService; //协调服务
  61. std::shared_ptr<RedisBase> m_RedisClient;//redis
  62. //接口变量
  63. protected:
  64. IServiceUnitsSink * m_pIServiceUnitsSink; //状态接口
  65. //静态变量
  66. public:
  67. static CServiceUnits * g_pServiceUnits; //对象指针
  68. //函数定义
  69. public:
  70. //构造函数
  71. CServiceUnits();
  72. //析构函数
  73. virtual ~CServiceUnits();
  74. //信息函数
  75. public:
  76. //获取状态
  77. enServiceStatus GetServiceStatus() { return m_ServiceStatus; }
  78. //服务控制
  79. public:
  80. //启动服务
  81. bool StartService();
  82. //停止服务
  83. bool ConcludeService();
  84. //设置接口
  85. bool SetServiceUnitsSink(IServiceUnitsSink * pIServiceUnitsSink);
  86. //投递请求
  87. bool PostControlRequest(WORD wIdentifier, VOID * pData, WORD wDataSize);
  88. //辅助函数
  89. protected:
  90. //配置组件
  91. bool InitializeService();
  92. //启动内核
  93. bool StartKernelService();
  94. //启动网络
  95. bool StartNetworkService();
  96. //内部函数
  97. private:
  98. //设置状态
  99. bool SetServiceStatus(enServiceStatus ServiceStatus);
  100. //发送控制
  101. bool SendControlPacket(WORD wControlID, VOID * pData, WORD wDataSize);
  102. //消息映射
  103. protected:
  104. //控制消息
  105. LRESULT OnUIControlRequest(WPARAM wParam, LPARAM lParam);
  106. DECLARE_MESSAGE_MAP()
  107. };
  108. //////////////////////////////////////////////////////////////////////////////////
  109. #endif