summaryrefslogtreecommitdiffstats
path: root/src/Common/SystemBackend.cpp
diff options
context:
space:
mode:
authorMatthias Schiffer <matthias@gamezock.de>2008-09-24 15:23:27 +0200
committerMatthias Schiffer <matthias@gamezock.de>2008-09-24 15:23:27 +0200
commitbea0bb0ff40dca9e5dba55c697c30e4fffaf0f66 (patch)
tree034ed13ba0214fb8d324cd56b1e1a207f5aff0ff /src/Common/SystemBackend.cpp
parentfae8ca32af7407653d21f7cbc4e9ea79751faab8 (diff)
downloadmad-bea0bb0ff40dca9e5dba55c697c30e4fffaf0f66.tar
mad-bea0bb0ff40dca9e5dba55c697c30e4fffaf0f66.zip
Erlaube mehrere System-Backends
Diffstat (limited to 'src/Common/SystemBackend.cpp')
-rw-r--r--src/Common/SystemBackend.cpp29
1 files changed, 28 insertions, 1 deletions
diff --git a/src/Common/SystemBackend.cpp b/src/Common/SystemBackend.cpp
index c9be525..4bbc68a 100644
--- a/src/Common/SystemBackend.cpp
+++ b/src/Common/SystemBackend.cpp
@@ -22,7 +22,34 @@
namespace Mad {
namespace Common {
-std::auto_ptr<SystemBackend> SystemBackend::backend(new SystemBackend());
+std::set<SystemBackend*> SystemBackend::backends;
+
+SystemBackend::UptimeInfo SystemBackend::getUptimeInfo() {
+ UptimeInfo ret = {0, 0};
+
+ for(std::set<SystemBackend*>::iterator backend = backends.begin(); backend != backends.end() && ret.uptime == 0; ++backend)
+ ret = (*backend)->uptimeInfo();
+
+ return ret;
+}
+
+SystemBackend::MemoryInfo SystemBackend::getMemoryInfo() {
+ MemoryInfo ret = {0, 0, 0, 0};
+
+ for(std::set<SystemBackend*>::iterator backend = backends.begin(); backend != backends.end() && ret.totalMem == 0; ++backend)
+ ret = (*backend)->memoryInfo();
+
+ return ret;
+}
+
+SystemBackend::LoadInfo SystemBackend::getLoadInfo() {
+ LoadInfo ret = {0, 0, 0, 0, 0};
+
+ for(std::set<SystemBackend*>::iterator backend = backends.begin(); backend != backends.end() && ret.currentLoad == 0 && ret.loadAvg1 == 0 && ret.nProcesses == 0; ++backend)
+ ret = (*backend)->loadInfo();
+
+ return ret;
+}
}
}