summaryrefslogtreecommitdiffstats
path: root/src/Net/Packets/HostStatusPacket.h
diff options
context:
space:
mode:
authorMatthias Schiffer <matthias@gamezock.de>2008-09-20 11:59:36 +0200
committerMatthias Schiffer <matthias@gamezock.de>2008-09-20 11:59:36 +0200
commit89551ddfc2879530981eba3db9ab857b88409ad8 (patch)
treeb0fa2c3d84201a3bce8d46c002a2e506a95f1c24 /src/Net/Packets/HostStatusPacket.h
parent5286ffcb30e3005569199c45bca38dfbf346cec3 (diff)
downloadmad-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.h40
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;
+ }
};
}