2025-03-12 14:17:01 +08:00

401 lines
13 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/******************************************************************************//**
* @file SysInfoImp.h
* @brief 系统建模信息访问库实现
* @author yikenan
* @version 1.0
* @date
**********************************************************************************/
#pragma once
#include "pub_sysinfo_api/SysInfoApi.h"
#include "SysInfoData.h"
namespace iot_public
{
class CSysInfoImp : public CSysInfoInterface
{
public:
CSysInfoImp();
virtual ~CSysInfoImp();
bool loadData();
/**
@brief 命令行打印输出全部的配置信息,可供测试、调试使用
@param
@return
@retval
*/
void printAllData()override;
/**
* @brief 重新加载所有数据
*/
bool reloadAllData()override;
/**
@brief 获取所有的应用信息
@param std::vector<SAppInfo> & vecAppInfo 返回的应用信息列表
@return
@retval
*/
int getAllAppInfo(std::vector<SAppInfo> &vecAppInfo)override;
/**
@brief 获取所有域的信息
@param std::vector<SDomainInfo> & vecDomainInfo 返回的域信息列表
@return
@retval
*/
int getAllDomainInfo(std::vector<SDomainInfo> &vecDomainInfo)override;
/**
@brief 获取所有位置信息
@param std::vector<SLocationInfo> & vecLocationInfo 返回的位置信息
@return
@retval
*/
int getAllLocationInfo(std::vector<SLocationInfo> &vecLocationInfo)override;
/**
@brief 获取所有的节点信息
@param std::vector<SNodeInfo> & vecNodeInfo 返回的节点信息列表
@return
@retval
*/
int getAllNodeInfo(std::vector<SNodeInfo> &vecNodeInfo)override;
/**
@brief 获取所有的专业信息
@param std::vector<SSubsystemInfo> & vecSubsystemInfo 返回的专业信息列表
@return
@retval
*/
int getAllSubsystemInfo(std::vector<SSubsystemInfo> &vecSubsystemInfo)override;
/**
@brief 获取指定域、应用的应用部署信息
@param int nDomainId 域号
@param int nAppId 应用号
@param SAppDeploy & stAppDeploy 返回的应用部署信息
@return
@retval
*/
int getAppDeployById(int nDomainId, int nAppId, SAppDeploy &stAppDeploy)override;
/**
@brief 获取指定域、应用的应用部署信息
@param const std::string & strDomainName 域名
@param const std::string & strAppName 专业名
@param SAppDeploy & stAppDeploy 返回的应用部署信息
@return
@retval
*/
int getAppDeployByName(const std::string &strDomainName, const std::string &strAppName, SAppDeploy &stAppDeploy)override;
/**
@brief 获取指定节点的应用部署信息
@param std::string strNodeName 节点名
@param std::vector<SAppDeploy> & vecAppDeploy 返回的应用部署信息
@return
@retval
*/
int getAppDeployByNodeName(const std::string &strNodeName, std::vector<SAppDeploy> &vecAppDeploy)override;
//virtual int getSubsystemListByNodeId(int nNodeId,std::vector<SSubsystemInfo> &vecSubsystemInfo) = 0;
/**
@brief 通过应用ID获取应用信息
@param int nAppId 应用ID
@param SAppInfo & stAppInfo 返回的应用信息
@return
@retval
*/
int getAppInfoById(int nAppId, SAppInfo &stAppInfo)override;
/**
@brief 通过应用名获取应用信息
@param const std::string & strAppName 应用名
@param SAppInfo & stAppInfo 返回的应用信息
@return
@retval
*/
int getAppInfoByName(const std::string &strAppName, SAppInfo &stAppInfo)override;
/**
@brief 获取专业所属的应用信息
@param int nSubsystemId 专业ID
@param SAppInfo &stAppInfo 返回的应用信息
@return
@retval
*/
int getAppInfoBySubsystemId(int nSubsystemId, SAppInfo &stAppInfo)override;
/**
@brief 获取专业所属的应用信息
@param const std::string & strSubsystemName 专业名
@param SAppInfo &stAppInfo 返回的应用信息
@return
@retval
*/
int getAppInfoBySubsystemName(const std::string &strSubsystemName, SAppInfo &stAppInfo)override;
/**
@brief 获取中心域信息
@param SDomainInfo & stDomainInfo 返回的中心域信息
@return
@retval
*/
int getCenterDomainInfo(SDomainInfo &stDomainInfo)override;
/**
@brief 获取指定域的数据库配置信息
@param int nDomainId 域号
@param SDatabaseInfo & stFirstConnect 首链接
@param std::vector<SDatabaseInfo> & vecLocalDBInfo 返回的本地数据库列表
@param std::vector<SDatabaseInfo> & vecRemoteDBInfo 返回的远程数据库列表
@return
@retval
*/
int getDBInfoByDomainId(int nDomainId, SDatabaseInfo &stFirstConnect, std::vector<SDatabaseInfo> &vecLocalDBInfo, std::vector<SDatabaseInfo> &vecRemoteDBInfo)override;
/**
@brief 通过节点名获取数据库配置信息
@param const std::string & strNodeName 节点名
@param SDatabaseInfo & stDBInfo 返回的数据库配置信息
@return
@retval
*/
int getDBInfoByNodeName(const std::string &strNodeName, SDatabaseInfo &stDBInfo)override;
/**
@brief 通过域号获取域信息
@param int nDomainId 域号
@param SDomainInfo & stDomainInfo 返回的域信息
@return
@retval
*/
int getDomainInfoById(int nDomainId, SDomainInfo &stDomainInfo)override;
/**
@brief 通过域名获取域信息
@param const std::string & strDomainName 域名
@param SDomainInfo & stDomainInfo 返回的域信息
@return
@retval
*/
int getDomainInfoByName(const std::string &strDomainName, SDomainInfo &stDomainInfo)override;
/**
@brief 获取节点所在域信息
@param const std::string strNodeName 节点名
@param SDomainInfo & stDomainInfo 返回的域信息
@return
@retval
*/
int getDomainInfoByNodeName(const std::string strNodeName, SDomainInfo &stDomainInfo)override;
/**
@brief 获取本节点的应用部署信息
@param std::vector<SAppDeploy> & vecAppDeploy 返回的应用部署信息
@return
@retval
*/
int getLocalAppDeploy(std::vector<SAppDeploy> &vecAppDeploy)override;
/**
@brief 获取本域的数据库配置信息
@param SDatabaseInfo & stFirstConnect 首链接
@param std::vector<SDatabaseInfo> & vecLocalDBInfo 返回的本地数据库列表
@param std::vector<SDatabaseInfo> & vecRemoteDBInfo 返回的远程数据库列表
@return
@retval
*/
int getLocalDBInfo(SDatabaseInfo &stFirstConnect, std::vector<SDatabaseInfo> &vecLocalDBInfo, std::vector<SDatabaseInfo> &vecRemoteDBInfo)override;
/**
@brief 获取本机节点信息
@param SNodeInfo & stNodeInfo 返回的节点信息
@return
@retval
*/
int getLocalNodeInfo(SNodeInfo &stNodeInfo)override;
/**
@brief 通过应用ID获取本进程运行所需的相关参数
@param int nAppId 应用ID
@param SRunAppInfo & stRunAppInfo 返回的运行信息
@return
@retval
*/
int getLocalRunAppInfoById(int nAppId, SRunAppInfo &stRunAppInfo)override;
/**
@brief 通过应用名获取本进程运行所需的相关参数
@param const std::string & strSubsystemName 应用名
@param SRunAppInfo & stRunAppInfo 返回的运行信息
@return
@retval
*/
int getLocalRunAppInfoByName(const std::string &strAppName, SRunAppInfo &stRunAppInfo)override;
//----virtual int getAllDBDeploy(std::vector<SDBDeploy> &vecDBDeploy) = 0;
/**
@brief 通过位置号获取位置信息
@param int nLocationId 位置号
@param SLocationInfo & stLocationInfo 返回的位置信息
@return
@retval
*/
int getLocationInfoById(int nLocationId, SLocationInfo &stLocationInfo)override;
/**
@brief 通过位置名称获取位置
@param const std::string & strLocationName 位置名称
@param SLocationInfo & stLocationInfo 返回的位置信息
@return
@retval
*/
int getLocationInfoByName(const std::string &strLocationName, SLocationInfo &stLocationInfo)override;
/**
@brief 通过域ID获取该域下所有的位置信息
@param int nDomainId 域号
@param std::vector<SLocationInfo> & vecLocationInfo 返回的位置信息
@return
@retval
*/
int getLocationListByDomainId(int nDomainId, std::vector<SLocationInfo> &vecLocationInfo)override;
/**
@brief 通过节点名获取节点信息
@param const std::string strNodeName 节点名
@param SNodeInfo & stNodeInfo 返回的节点信息
@return
@retval
*/
int getNodeInfoByName(const std::string strNodeName, SNodeInfo &stNodeInfo)override;
/**
@brief 获取指定域的所有节点信息
@param int nDomainId 域号
@param std::vector<SNodeInfo> & vecNodeInfo 返回的节点列表
@return
@retval
*/
int getNodeListByDomainId(int nDomainId, std::vector<SNodeInfo> &vecNodeInfo)override;
/**
@brief 获取指定域的所有节点信息
@param const std::string & strDomainName 域名
@param std::vector<SNodeInfo> & vecNodeInfo 返回的节点列表
@return
@retval
*/
int getNodeListByDomainName(const std::string &strDomainName, std::vector<SNodeInfo> &vecNodeInfo)override;
/**
@brief 通过专业ID获取专业信息
@param int nSubsystemId 专业ID
@param SSubsystemInfo & stSubsystemInfo 返回的专业信息
@return
@retval
*/
int getSubsystemInfoById(int nSubsystemId, SSubsystemInfo &stSubsystemInfo)override;
/**
@brief 通过专业名获取专业信息
@param const std::string & strSubsystemName 专业名称
@param SSubsystemInfo & stSubsystemInfo 返回的专业信息
@return
@retval
*/
int getSubsystemInfoByName(const std::string &strSubsystemName, SSubsystemInfo &stSubsystemInfo)override;
/**
@brief 获取指定应用下的专业列表
@param int nAppId 应用ID
@param std::vector<SSubsystemInfo> & vecSubsystemInfo 返回的专业信息列表
@return
@retval
*/
int getSubsystemListByAppId(int nAppId, std::vector<SSubsystemInfo> &vecSubsystemInfo)override;
/**
@brief 获取指定应用下的专业列表
@param const std::string & strAppName 应用名
@param std::vector<SSubsystemInfo> & vecSubsystemInfo 返回的专业信息列表
@return
@retval
*/
int getSubsystemListByAppName(const std::string &strAppName, std::vector<SSubsystemInfo> &vecSubsystemInfo)override;
/**
@brief 获取本节点部署的各应用下的进程列表
@param SProcessInfoMAP & mapProcInfo 返回的进程列表
@return 成功返回kbdSuccess失败返回错误码
@retval
*/
int getLocalProcInfoList(SProcessInfoMAP &mapProcInfo)override;
/**
@brief 获取指定应用部署的进程列表
@param int nAppId 应用ID
@param SProcessInfoMAP & mapProcInfo 返回的该应用下的进程列表
@return 成功返回kbdSuccess失败返回错误码
@retval
*/
int getProcInfoListByAppId(int nAppId, SProcessInfoMAP &mapProcInfo)override;
/**
@brief 获取所有消息总线转发信息
@param vecMbRelayInfo:输出
@return 成功返回kbdSuccess失败返回错误码
@retval
*/
int getAllMbRelayInfo(std::vector<SMbRelayInfo> &vecMbRelayInfo)override;
/**
@brief 按源域ID获取消息总线转发信息
@param vecMbRelayInfo输出
@return 成功返回kbdSuccess失败返回错误码
@retval
*/
int getMbRelayInfoBySrcDomainID(int nSrcDomainID,
std::vector<SMbRelayInfo> &vecMbRelayInfo)override;
/**
@brief 按目标域ID获取消息总线转发信息
@param vecMbRelayInfo输出
@return 成功返回kbdSuccess失败返回错误码
@retval
*/
int getMbRelayInfoByDstDomainID(int nDstDomainID,
std::vector<SMbRelayInfo> &vecMbRelayInfo)override;
/**
@brief 按目标域ID获取消息总线转发信息
@param objMbRelayInfo输出
@return 找到返回kbdSuccess失败返回错误码
@retval
*/
int getMbRelayInfoBySrcAndDstDomainID(int nSrcDomainID, int nDstDomainID,
SMbRelayInfo &stMbRelayInfo)override;
/**
* @brief getUniqueIdOfNodeInfo 获取所有节点信息的唯一id用于在同一个网络内区分不同的项目
* @return CRC32值
*/
unsigned int getUniqueIdOfNodeInfo();
///////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////
private:
CSysInfoData m_objData;
};
} //namespace iot_public