|
- #ifndef SERVICE_UNITS_HEAD_FILE
- #define SERVICE_UNITS_HEAD_FILE
-
- #pragma once
-
- #include "Stdafx.h"
- #include "InitParameter.h"
- #include "AttemperEngineSink.h"
- #include "RedisHead.h"
-
- //////////////////////////////////////////////////////////////////////////////////
- //枚举定义
-
- //服务状态
- enum enServiceStatus
- {
- ServiceStatus_Stop, //停止状态
- ServiceStatus_Config, //配置状态
- ServiceStatus_Service, //服务状态
- };
-
- //////////////////////////////////////////////////////////////////////////////////
-
- //状态接口
- interface IServiceUnitsSink
- {
- //接口定义
- public:
- //服务状态
- virtual VOID OnServiceUnitsStatus(enServiceStatus ServiceStatus) = NULL;
- };
-
- //////////////////////////////////////////////////////////////////////////////////
-
- //服务单元
- class CServiceUnits
- {
- //状态变量
- protected:
- enServiceStatus m_ServiceStatus; //运行状态
-
- //组件变量
- private:
- CWHDataQueue m_DataQueue; //数据队列
- CCriticalSection m_CriticalSection; //同步对象
-
- //服务组件
- protected:
- CInitParameter m_InitParameter; //配置参数
- public:
- CAttemperEngineSink m_AttemperEngineSink; //调度钩子
-
- //内核组件
- protected:
- CTimerEngineHelper m_TimerEngine; //时间引擎
- CAttemperEngineHelper m_AttemperEngine; //调度引擎
- CTCPNetworkEngineHelper m_TCPNetworkEngine; //网络引擎
- std::shared_ptr<RedisBase> m_RedisClient;//redis
- //接口变量
- protected:
- IServiceUnitsSink * m_pIServiceUnitsSink; //状态接口
-
- //函数定义
- public:
- //构造函数
- CServiceUnits();
- //析构函数
- virtual ~CServiceUnits();
-
- //信息函数
- public:
- //获取状态
- enServiceStatus GetServiceStatus() { return m_ServiceStatus; }
-
- //服务控制
- public:
- //启动服务
- bool StartService();
- //停止服务
- bool ConcludeService();
- //设置接口
- bool SetServiceUnitsSink(IServiceUnitsSink * pIServiceUnitsSink);
-
- //辅助函数
- protected:
- //配置组件
- bool InitializeService();
- //启动内核
- bool StartKernelService();
-
- //内部函数
- private:
- //设置状态
- bool SetServiceStatus(enServiceStatus ServiceStatus);
- };
-
- //////////////////////////////////////////////////////////////////////////////////
-
- #endif
|