From 89551ddfc2879530981eba3db9ab857b88409ad8 Mon Sep 17 00:00:00 2001 From: Matthias Schiffer Date: Sat, 20 Sep 2008 11:59:36 +0200 Subject: Lese /proc/loadavg f?r weitere Statusinformationen aus --- src/Net/Packets/HostStatusPacket.h | 40 ++++++++++++++++++++++++++++++++++---- 1 file changed, 36 insertions(+), 4 deletions(-) (limited to 'src/Net/Packets/HostStatusPacket.h') diff --git a/src/Net/Packets/HostStatusPacket.h b/src/Net/Packets/HostStatusPacket.h index 0de63de..fa0910c 100644 --- a/src/Net/Packets/HostStatusPacket.h +++ b/src/Net/Packets/HostStatusPacket.h @@ -36,21 +36,33 @@ class HostStatusPacket : public Packet { uint32_t freeMem; uint32_t totalSwap; uint32_t freeSwap; + + uint32_t currentLoad; + uint32_t nProcesses; + + uint8_t charData[0]; }; CoreStatusData *coreStatusData; + float loadAvg1, loadAvg5, loadAvg15; + + void parsePacket(); + public: HostStatusPacket(Type type, uint16_t requestId, uint32_t uptime = 0, uint32_t idleTime = 0, - uint32_t totalMem = 0, uint32_t freeMem = 0, uint32_t totalSwap = 0, uint32_t freeSwap = 0); + uint32_t totalMem = 0, uint32_t freeMem = 0, uint32_t totalSwap = 0, uint32_t freeSwap = 0, + uint32_t currentLoad = 0, uint32_t nProcesses = 0, float loadAvg1val = 0, float loadAvg5val = 0, float loadAvg15val = 0); HostStatusPacket(const Packet &p) : Packet(p) { - setLength(sizeof(CoreStatusData)); - coreStatusData = (CoreStatusData*)&rawData->data; + if(getLength() < sizeof(CoreStatusData)) + setLength(sizeof(CoreStatusData)); + + parsePacket(); } HostStatusPacket(const HostStatusPacket &p) : Packet(p) { - coreStatusData = (CoreStatusData*)&rawData->data; + parsePacket(); } HostStatusPacket& operator=(const Packet &p); @@ -82,6 +94,26 @@ class HostStatusPacket : public Packet { uint32_t getFreeSwap() const { return ntohl(coreStatusData->freeSwap); } + + uint32_t getCurrentLoad() const { + return ntohl(coreStatusData->currentLoad); + } + + uint32_t getProcessNumber() const { + return ntohl(coreStatusData->nProcesses); + } + + float getLoadAverage1() const { + return loadAvg1; + } + + float getLoadAverage5() const { + return loadAvg5; + } + + float getLoadAverage15() const { + return loadAvg15; + } }; } -- cgit v1.2.3