diff options
Diffstat (limited to 'src/Net/Packets/HostStatusPacket.h')
-rw-r--r-- | src/Net/Packets/HostStatusPacket.h | 40 |
1 files changed, 36 insertions, 4 deletions
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; + } }; } |