XNSim/XNMonitorServer/SystemInfoMonitor.h

60 lines
1.2 KiB
C
Raw Permalink Normal View History

#ifndef SYSTEMINFOMONITOR_H
#define SYSTEMINFOMONITOR_H
#include "XNMonitorServer_global.h"
#include <map>
#include <mutex>
#include "TypeDefine.h"
#include "TopicManager.h"
#include "../XNCore/XNIDL/XNSimStatusPubSubTypes.hpp"
class XNMONITORSERVER_EXPORT SystemInfoMonitor
{
public:
explicit SystemInfoMonitor() {}
virtual ~SystemInfoMonitor();
public:
std::string Initialize();
std::string GetSystemInfo();
std::string GetAllThreadInfo();
private:
/**
* @brief
* @param status
*/
void EngineStatusListener(const XNSim::XNSimStatus::XNEngineStatus &status);
/**
* @brief 线
* @param status 线
*/
void ThreadStatusListener(const XNSim::XNSimStatus::XNThreadStatus &status);
private:
/**
* @brief
*/
std::mutex m_EngineStatusMutex;
std::mutex m_ThreadStatusMutex;
/**
* @brief
*/
XNSim::XNSimStatus::XNEngineStatus m_EngineStatus;
/**
* @brief
*/
bool m_EngineStatusUpdate = false;
/**
* @brief 线
*/
std::map<uint32_t, XNSim::XNSimStatus::XNThreadStatus> m_ThreadStatus;
/**
* @brief 线
*/
std::map<uint32_t, uint64_t> m_ThreadCycleCount;
};
#endif // SYSTEMINFOMONITOR_H