diff options
author | Matthias Schiffer <matthias@gamezock.de> | 2008-09-24 15:23:27 +0200 |
---|---|---|
committer | Matthias Schiffer <matthias@gamezock.de> | 2008-09-24 15:23:27 +0200 |
commit | bea0bb0ff40dca9e5dba55c697c30e4fffaf0f66 (patch) | |
tree | 034ed13ba0214fb8d324cd56b1e1a207f5aff0ff /src/Common/SystemBackend.cpp | |
parent | fae8ca32af7407653d21f7cbc4e9ea79751faab8 (diff) | |
download | mad-bea0bb0ff40dca9e5dba55c697c30e4fffaf0f66.tar mad-bea0bb0ff40dca9e5dba55c697c30e4fffaf0f66.zip |
Erlaube mehrere System-Backends
Diffstat (limited to 'src/Common/SystemBackend.cpp')
-rw-r--r-- | src/Common/SystemBackend.cpp | 29 |
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; +} } } |