2025-03-12 11:08:50 +08:00
|
|
|
|
/**
|
|
|
|
|
|
@file ProcMngImpl.h
|
|
|
|
|
|
@brief 进程管理接口类的实现文件
|
|
|
|
|
|
@author 曹顶法
|
|
|
|
|
|
*/
|
|
|
|
|
|
#pragma once
|
|
|
|
|
|
#include "sys_proc_mng_api/ProcMngInterface.h"
|
|
|
|
|
|
#include "ProcMngApiThread.h"
|
|
|
|
|
|
|
2025-03-12 14:17:01 +08:00
|
|
|
|
namespace iot_sys
|
2025-03-12 11:08:50 +08:00
|
|
|
|
{
|
|
|
|
|
|
class CProcMngImpl : public CProcMngInterface
|
|
|
|
|
|
{
|
|
|
|
|
|
public:
|
|
|
|
|
|
/**
|
|
|
|
|
|
@brief 构造函数
|
|
|
|
|
|
@param const SProcessInfoKey & stProcKey 进程主键标识
|
|
|
|
|
|
*/
|
|
|
|
|
|
explicit CProcMngImpl(const SProcessInfoKey &stProcKey);
|
|
|
|
|
|
virtual ~CProcMngImpl();
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
@brief 设置进程退出通知回调
|
|
|
|
|
|
@param const CProcessQuitInterface * pQuitInterface 回调对象
|
|
|
|
|
|
*/
|
|
|
|
|
|
virtual int setCallback(CProcessQuitInterface *pQuitInterface);
|
|
|
|
|
|
/**
|
|
|
|
|
|
@brief 清除回调
|
|
|
|
|
|
*/
|
|
|
|
|
|
virtual void unsetCallback();
|
|
|
|
|
|
/**
|
|
|
|
|
|
@brief 更新进程信息
|
|
|
|
|
|
@param bool bActive 是否可用标识
|
|
|
|
|
|
@param bool bMaster 是否为主
|
|
|
|
|
|
@param bool bSlave 是否为备
|
|
|
|
|
|
@return 成功返回Success,失败返回相应错误码
|
|
|
|
|
|
@retval
|
|
|
|
|
|
*/
|
|
|
|
|
|
virtual int updateProcessInfo(bool bActive, bool bMaster, bool bSlave);
|
|
|
|
|
|
/**
|
|
|
|
|
|
@brief 获取进程信息
|
|
|
|
|
|
@param SProcessInfo & stProcInfo 返回的进程信息
|
|
|
|
|
|
@return 成功返回Success,失败返回相应错误码
|
|
|
|
|
|
@retval
|
|
|
|
|
|
*/
|
|
|
|
|
|
virtual int getProcessInfo(SProcRunInfo &stProcInfo);
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
@brief 向进程管理注册进程信息
|
|
|
|
|
|
@param const SProcessInfoKey & stProcKey 进程标识主键
|
2025-03-12 16:30:28 +08:00
|
|
|
|
@return 成功返回iotSuccess,失败返回iotFailed
|
2025-03-12 11:08:50 +08:00
|
|
|
|
@retval
|
|
|
|
|
|
*/
|
|
|
|
|
|
//int registerProcInfo(const SProcessInfoKey &stProcKey);
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
@brief 初始化
|
2025-03-12 16:30:28 +08:00
|
|
|
|
@return 成功返回iotSuccess,失败返回相应错误码
|
2025-03-12 11:08:50 +08:00
|
|
|
|
*/
|
|
|
|
|
|
int initialize();
|
|
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
CProcMngImpl(); //< 防止默认构造
|
|
|
|
|
|
|
|
|
|
|
|
private:
|
|
|
|
|
|
SProcessInfoKey m_stProcKey; //< 进程信息的主键
|
|
|
|
|
|
CProcMngApiThreadPtr m_ptrProcMngThread; //< 心跳线程
|
|
|
|
|
|
bool m_bIsInitProcInfo; //< 是否已经完成初始化
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
typedef boost::shared_ptr<CProcMngImpl> CProcMngImplPtr;
|
|
|
|
|
|
|
2025-03-12 14:17:01 +08:00
|
|
|
|
} //namespace iot_sys
|
2025-03-12 11:08:50 +08:00
|
|
|
|
|