HM-SPMS/product/src/tools/workBench/BrushDataThread.h

104 lines
2.6 KiB
C
Raw Normal View History

2025-03-13 15:21:23 +08:00
#ifndef BRUSHDATATHREAD_H
#define BRUSHDATATHREAD_H
#include "pub_utility_api/TimerThreadBase.h"
#include "rdb_net_api/CRdbNetApi.h"
#include "sigar.h"
#include "sigar_format.h"
#include "MonitorCommon.h"
#include "rdb_net_api/CRdbNetApi.h"
#include <QMutex>
using namespace std;
using namespace workBench;
using namespace iot_dbms;
class BrushDataThread : public iot_public::CTimerThreadBase
{
public:
/**
* @brief BrushDataThread
*/
BrushDataThread();
virtual ~BrushDataThread();
/**
* @brief beforeExecute execute函数前的处理,
* @return
*/
virtual int beforeExecute();
/**
* @brief execute
*/
virtual void execute();
/**
* @brief get_proc_memory
* @param pid id
* @param procName
* @return
*/
float get_proc_memory(long long pid, const string &procName);
/**
* @brief get_proc_cpu CPU
* @param pid id
* @param procName
* @return cpu百分比
*/
float get_proc_cpu(long long pid, const string &procName);
/**
* @brief initialize
* @param domainId
* @param appId
* @return iotSuccess- iotFailed-
*/
int initialize(int domainId,int appId);
private:
bool queryRunInfo();
/**
* @brief queryAppRunInfo
* @return true- false-
*/
bool queryAppRunInfo();
/**
* @brief queryProcRunInfo
* @return true- false-
*/
bool queryProcRunInfo();
/**
* @brief initData
*/
void initData();
private:
QMutex *m_mutex; //< 锁
sigar_t *m_sigar; //< sigar对象
sigar_t *sigar_mem; //< 获取内存
SCpuAndDisk m_stNodeSigar; //< CPU和Disk
CRdbNetApi m_objRdbNetApi; //< 网络查询对象
vector<SApp> m_sysRunAppInfoVec; //< 远程查询应用结果
vector<SProcess> m_sysRunProcInfoVec; //< 远程查询进程结果
QString m_hostName; //< 本节点名称
int m_domainId; //< 订阅域ID
int m_appId; //< 订阅应用ID
};
typedef boost::shared_ptr<BrushDataThread> BrushDataThreadPtr;
#endif // BRUSHDATATHREAD_H