From 426d60a6992259ca80431c59e916073cc31f5261 Mon Sep 17 00:00:00 2001 From: Matthias Schiffer Date: Fri, 3 Oct 2008 01:30:27 +0200 Subject: Callback-basierte SystemBackends f?r h?here Flexibilit?t --- src/Common/SystemBackend.cpp | 60 ++++++++++++++++++++++---------------------- 1 file changed, 30 insertions(+), 30 deletions(-) (limited to 'src/Common/SystemBackend.cpp') diff --git a/src/Common/SystemBackend.cpp b/src/Common/SystemBackend.cpp index c017356..06a2898 100644 --- a/src/Common/SystemBackend.cpp +++ b/src/Common/SystemBackend.cpp @@ -25,49 +25,49 @@ namespace Common { std::set SystemBackend::backends; -SystemBackend::UptimeInfo SystemBackend::getUptimeInfo() { - UptimeInfo ret = {0, 0}; +bool SystemBackend::getUptimeInfo(const sigc::slot &callback) { + for(std::set::iterator backend = backends.begin(); backend != backends.end(); ++backend) { + if((*backend)->uptimeInfo(callback)) + return true; + } - for(std::set::iterator backend = backends.begin(); backend != backends.end() && ret.uptime == 0; ++backend) - ret = (*backend)->uptimeInfo(); - - return ret; + return false; } -SystemBackend::MemoryInfo SystemBackend::getMemoryInfo() { - MemoryInfo ret = {0, 0, 0, 0}; - - for(std::set::iterator backend = backends.begin(); backend != backends.end() && ret.totalMem == 0; ++backend) - ret = (*backend)->memoryInfo(); +bool SystemBackend::getMemoryInfo(const sigc::slot &callback) { + for(std::set::iterator backend = backends.begin(); backend != backends.end(); ++backend) { + if((*backend)->memoryInfo(callback)) + return true; + } - return ret; + return false; } -SystemBackend::LoadInfo SystemBackend::getLoadInfo() { - LoadInfo ret = {0, 0, 0, 0, 0}; - - for(std::set::iterator backend = backends.begin(); backend != backends.end() && ret.currentLoad == 0 && ret.loadAvg1 == 0 && ret.nProcesses == 0; ++backend) - ret = (*backend)->loadInfo(); +bool SystemBackend::getLoadInfo(const sigc::slot &callback) { + for(std::set::iterator backend = backends.begin(); backend != backends.end(); ++backend) { + if((*backend)->loadInfo(callback)) + return true; + } - return ret; + return false; } -bool SystemBackend::shutdown() { - bool ret = false; +bool SystemBackend::shutdown(const sigc::slot &callback) { + for(std::set::iterator backend = backends.begin(); backend != backends.end(); ++backend) { + if((*backend)->doShutdown(callback)) + return true; + } - for(std::set::iterator backend = backends.begin(); backend != backends.end() && !ret; ++backend) - ret = (*backend)->doShutdown(); - - return ret; + return false; } -bool SystemBackend::reboot() { - bool ret = false; - - for(std::set::iterator backend = backends.begin(); backend != backends.end() && !ret; ++backend) - ret = (*backend)->doReboot(); +bool SystemBackend::reboot(const sigc::slot &callback) { + for(std::set::iterator backend = backends.begin(); backend != backends.end(); ++backend) { + if((*backend)->doReboot(callback)) + return true; + } - return ret; + return false; } } -- cgit v1.2.3