401 lines
13 KiB
C++
401 lines
13 KiB
C++
|
||
/******************************************************************************//**
|
||
* @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
|
||
|