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/RequestHandlers/StatusRequestHandler.h | 36 ++++++++++++++++++++++- 1 file changed, 35 insertions(+), 1 deletion(-) (limited to 'src/Common/RequestHandlers/StatusRequestHandler.h') diff --git a/src/Common/RequestHandlers/StatusRequestHandler.h b/src/Common/RequestHandlers/StatusRequestHandler.h index c5dcbf7..fd907de 100644 --- a/src/Common/RequestHandlers/StatusRequestHandler.h +++ b/src/Common/RequestHandlers/StatusRequestHandler.h @@ -21,17 +21,51 @@ #define MAD_COMMON_REQUESTHANDLERS_STATUSREQUESTHANDLER_H_ #include "../RequestHandler.h" +#include namespace Mad { namespace Common { namespace RequestHandlers { class StatusRequestHandler : public RequestHandler { + private: + Net::Connection *connection; + uint16_t requestId; + + bool needUptime, needMemory, needLoad, sent; + + unsigned long uptime, idleTime; + unsigned long totalMem, freeMem, totalSwap, freeSwap; + unsigned long currentLoad, nProcesses; + float loadAvg1, loadAvg5, loadAvg15; + + void uptimeHandler(unsigned long uptime0, unsigned long idleTime0) { + uptime = uptime0; idleTime = idleTime0; + needUptime = false; + send(); + } + + void memoryHandler(unsigned long totalMem0, unsigned long freeMem0, unsigned long totalSwap0, unsigned long freeSwap0) { + totalMem = totalMem0; freeMem = freeMem0; totalSwap = totalSwap0; freeSwap = freeSwap0; + needMemory = false; + send(); + } + + void loadHandler(unsigned long currentLoad0, unsigned long nProcesses0, float loadAvg10, float loadAvg50, float loadAvg150) { + currentLoad = currentLoad0; nProcesses = nProcesses0; loadAvg1 = loadAvg10; loadAvg5 = loadAvg50; loadAvg15 = loadAvg150; + needLoad = false; + send(); + } + + void send(); + protected: virtual void handlePacket(Net::Connection *connection, const Net::Packet &packet); public: - StatusRequestHandler() {} + StatusRequestHandler() : needUptime(true), needMemory(true), needLoad(true), sent(false), + uptime(0), idleTime(0), totalMem(0), freeMem(0), totalSwap(0), freeSwap(0), + currentLoad(0), nProcesses(0), loadAvg1(0), loadAvg5(0), loadAvg15(0) {} }; } -- cgit v1.2.3