/******************************************************************************//** * @file SysInfoImp.h * @brief 系统建模信息访问库实现 * @author yikenan * @version 1.0 * @date **********************************************************************************/ #pragma once #include "pub_sysinfo_api/SysInfoApi.h" #include "SysInfoData.h" namespace kbd_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 & vecAppInfo 返回的应用信息列表 @return @retval */ int getAllAppInfo(std::vector &vecAppInfo)override; /** @brief 获取所有域的信息 @param std::vector & vecDomainInfo 返回的域信息列表 @return @retval */ int getAllDomainInfo(std::vector &vecDomainInfo)override; /** @brief 获取所有位置信息 @param std::vector & vecLocationInfo 返回的位置信息 @return @retval */ int getAllLocationInfo(std::vector &vecLocationInfo)override; /** @brief 获取所有的节点信息 @param std::vector & vecNodeInfo 返回的节点信息列表 @return @retval */ int getAllNodeInfo(std::vector &vecNodeInfo)override; /** @brief 获取所有的专业信息 @param std::vector & vecSubsystemInfo 返回的专业信息列表 @return @retval */ int getAllSubsystemInfo(std::vector &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 & vecAppDeploy 返回的应用部署信息 @return @retval */ int getAppDeployByNodeName(const std::string &strNodeName, std::vector &vecAppDeploy)override; //virtual int getSubsystemListByNodeId(int nNodeId,std::vector &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 & vecLocalDBInfo 返回的本地数据库列表 @param std::vector & vecRemoteDBInfo 返回的远程数据库列表 @return @retval */ int getDBInfoByDomainId(int nDomainId, SDatabaseInfo &stFirstConnect, std::vector &vecLocalDBInfo, std::vector &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 & vecAppDeploy 返回的应用部署信息 @return @retval */ int getLocalAppDeploy(std::vector &vecAppDeploy)override; /** @brief 获取本域的数据库配置信息 @param SDatabaseInfo & stFirstConnect 首链接 @param std::vector & vecLocalDBInfo 返回的本地数据库列表 @param std::vector & vecRemoteDBInfo 返回的远程数据库列表 @return @retval */ int getLocalDBInfo(SDatabaseInfo &stFirstConnect, std::vector &vecLocalDBInfo, std::vector &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 &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 & vecLocationInfo 返回的位置信息 @return @retval */ int getLocationListByDomainId(int nDomainId, std::vector &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 & vecNodeInfo 返回的节点列表 @return @retval */ int getNodeListByDomainId(int nDomainId, std::vector &vecNodeInfo)override; /** @brief 获取指定域的所有节点信息 @param const std::string & strDomainName 域名 @param std::vector & vecNodeInfo 返回的节点列表 @return @retval */ int getNodeListByDomainName(const std::string &strDomainName, std::vector &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 & vecSubsystemInfo 返回的专业信息列表 @return @retval */ int getSubsystemListByAppId(int nAppId, std::vector &vecSubsystemInfo)override; /** @brief 获取指定应用下的专业列表 @param const std::string & strAppName 应用名 @param std::vector & vecSubsystemInfo 返回的专业信息列表 @return @retval */ int getSubsystemListByAppName(const std::string &strAppName, std::vector &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 &vecMbRelayInfo)override; /** @brief 按源域ID获取消息总线转发信息 @param vecMbRelayInfo:输出 @return 成功返回kbdSuccess,失败返回错误码 @retval */ int getMbRelayInfoBySrcDomainID(int nSrcDomainID, std::vector &vecMbRelayInfo)override; /** @brief 按目标域ID获取消息总线转发信息 @param vecMbRelayInfo:输出 @return 成功返回kbdSuccess,失败返回错误码 @retval */ int getMbRelayInfoByDstDomainID(int nDstDomainID, std::vector &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 kbd_public