summaryrefslogtreecommitdiffstats
path: root/src/Common/RequestHandlers/StatusRequestHandler.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/Common/RequestHandlers/StatusRequestHandler.h')
-rw-r--r--src/Common/RequestHandlers/StatusRequestHandler.h36
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) {}
};
}