diff options
author | Matthias Schiffer <matthias@gamezock.de> | 2008-10-03 01:30:27 +0200 |
---|---|---|
committer | Matthias Schiffer <matthias@gamezock.de> | 2008-10-03 01:30:27 +0200 |
commit | 426d60a6992259ca80431c59e916073cc31f5261 (patch) | |
tree | ce88e01006e91ce4c159afc645777f9b458110b3 /src/Common/RequestHandlers/StatusRequestHandler.h | |
parent | 2f5eba3ce1bddf30b23444042f955adc10d84855 (diff) | |
download | mad-426d60a6992259ca80431c59e916073cc31f5261.tar mad-426d60a6992259ca80431c59e916073cc31f5261.zip |
Callback-basierte SystemBackends f?r h?here Flexibilit?t
Diffstat (limited to 'src/Common/RequestHandlers/StatusRequestHandler.h')
-rw-r--r-- | src/Common/RequestHandlers/StatusRequestHandler.h | 36 |
1 files changed, 35 insertions, 1 deletions
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 <stdint.h> 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) {} }; } |