diff options
author | Matthias Schiffer <matthias@gamezock.de> | 2008-09-20 11:59:36 +0200 |
---|---|---|
committer | Matthias Schiffer <matthias@gamezock.de> | 2008-09-20 11:59:36 +0200 |
commit | 89551ddfc2879530981eba3db9ab857b88409ad8 (patch) | |
tree | b0fa2c3d84201a3bce8d46c002a2e506a95f1c24 /src/Net/Packets/HostStatusPacket.h | |
parent | 5286ffcb30e3005569199c45bca38dfbf346cec3 (diff) | |
download | mad-89551ddfc2879530981eba3db9ab857b88409ad8.tar mad-89551ddfc2879530981eba3db9ab857b88409ad8.zip |
Lese /proc/loadavg f?r weitere Statusinformationen aus
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; + } }; } |