/*
 * @Description: 
 * @Version: 1.0
 * @Autor: lishengyin
 * @Date: 2022-03-24 14:16:43
 * @LastEditors: lishengyin
 * @LastEditTime: 2022-03-25 09:46:19
 */
#ifndef __EQUIPMENTMONITOR_H_
#define __EQUIPMENTMONITOR_H_

#include <iostream>
#include "Util/util.h"
#include "Util/logger.h"
#include "Network/Socket.h"
#include "Util/TimeTicker.h"
#include "Util/NoticeCenter.h"
#include <sys/statfs.h>
#include <string>
#include <iostream>
#include <limits.h>
#include <stdio.h>
#include <string.h>
#include <unistd.h>

using namespace std;
using namespace toolkit;

class EquipmentMonitor
{
private:
    static std::string get_cur_executable_path_();

    EquipmentMonitor() {}

    EquipmentMonitor(EquipmentMonitor&) = delete;

    EquipmentMonitor& operator=(const EquipmentMonitor&) = delete;
public: 
    using Ptr = std::shared_ptr<EquipmentMonitor>;

    /**
     * @description: 获取ptr
     * @param {*}
     * @return {*}
     */    
    static shared_ptr<EquipmentMonitor> getPtr();

    ~EquipmentMonitor() {}

    /**
     * @description: 获取硬盘使用率
     * @param {*}
     * @return {*}
     */    
    double getHardDiskUsage();

    /**
     * @description: 获取Cpu温度
     * @param {*}
     * @return {*}
     */    
    int getCpuTemp();
};


#endif