summaryrefslogtreecommitdiffstats
path: root/src/Common/Backends/SystemBackendProc.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/Common/Backends/SystemBackendProc.cpp')
-rw-r--r--src/Common/Backends/SystemBackendProc.cpp20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/Common/Backends/SystemBackendProc.cpp b/src/Common/Backends/SystemBackendProc.cpp
index f2d9152..51e14f8 100644
--- a/src/Common/Backends/SystemBackendProc.cpp
+++ b/src/Common/Backends/SystemBackendProc.cpp
@@ -20,6 +20,7 @@
#include "SystemBackendProc.h"
#include <pcrecpp.h>
+#include <cstdio>
namespace Mad {
namespace Common {
@@ -86,6 +87,25 @@ SystemBackend::MemoryInfo SystemBackendProc::getMemoryInfo() {
return memInfo;
}
+SystemBackend::LoadInfo SystemBackendProc::getLoadInfo() {
+ LoadInfo loadInfo = {0, 0, 0, 0, 0};
+
+ loadFile.seekg(0, std::ios::beg);
+
+ if(!loadFile.good())
+ return loadInfo;
+
+ std::string line;
+ std::getline(loadFile, line);
+
+ if(line.empty())
+ return loadInfo;
+
+ std::sscanf(line.c_str(), "%f %f %f %lu/%lu", &loadInfo.loadAvg1, &loadInfo.loadAvg5, &loadInfo.loadAvg15, &loadInfo.currentLoad, &loadInfo.nProcesses);
+
+ return loadInfo;
+}
+
}
}
}