15 #include <unordered_map>
27 explicit cpuLoad(std::string procFileName =
"/proc/stat") :
28 procFile(
std::move(procFileName)), cpuName(
""){};
44 std::tuple<uint64_t, uint64_t, uint64_t, uint64_t>
47 auto cpuLoad_ = this->parseStatFile(this->procFile);
48 return std::make_tuple(cpuLoad_.at(
"cpu").at(
"user"),
49 cpuLoad_.at(
"cpu").at(
"nice"),
50 cpuLoad_.at(
"cpu").at(
"system"),
51 cpuLoad_.at(
"cpu").at(
"idle"));
64 std::string
getCPUName(
const std::string& cpuNameFile =
"/proc/cpuinfo");
67 void calculateCpuUsage();
68 std::map<std::string, std::unordered_map<std::string, uint64_t>>
69 parseStatFile(
const std::string& fileName);
70 void upDateCPUUsage();
71 std::chrono::system_clock::time_point currentTime;
74 std::map<std::string, double> cpuUsage;
75 std::map<std::string, std::unordered_map<std::string, uint64_t>> cpuLoadMap;
76 std::map<std::string, std::unordered_map<std::string, uint64_t>> oldCpuLoadMap;