diff options
author | Matthias Schiffer <matthias@gamezock.de> | 2009-02-24 22:03:34 +0100 |
---|---|---|
committer | Matthias Schiffer <matthias@gamezock.de> | 2009-02-24 22:03:34 +0100 |
commit | f85b6d5ab264910f272e69ce5997cebec54886ce (patch) | |
tree | 06b801d5b11c2d8a2dfae16b698ebaf0b74f429b /src/Common/RequestHandlers | |
parent | 8d629ca48e9b5530416127e2e52c945fe1f9ee52 (diff) | |
download | mad-f85b6d5ab264910f272e69ce5997cebec54886ce.tar mad-f85b6d5ab264910f272e69ce5997cebec54886ce.zip |
Requests Status, DaemonStatus und UserList in XmlRequests umgewandelt
Diffstat (limited to 'src/Common/RequestHandlers')
-rw-r--r-- | src/Common/RequestHandlers/StatusRequestHandler.cpp | 36 | ||||
-rw-r--r-- | src/Common/RequestHandlers/StatusRequestHandler.h | 8 |
2 files changed, 32 insertions, 12 deletions
diff --git a/src/Common/RequestHandlers/StatusRequestHandler.cpp b/src/Common/RequestHandlers/StatusRequestHandler.cpp index 8494fee..86ed970 100644 --- a/src/Common/RequestHandlers/StatusRequestHandler.cpp +++ b/src/Common/RequestHandlers/StatusRequestHandler.cpp @@ -18,20 +18,25 @@ */ #include "StatusRequestHandler.h" +#include "../Exception.h" #include "../SystemBackend.h" #include "../Logger.h" +#include "../XmlPacket.h" #include <Net/Connection.h> -#include <Net/Packets/ErrorPacket.h> -#include <Net/Packets/HostStatusPacket.h> namespace Mad { namespace Common { namespace RequestHandlers { -void StatusRequestHandler::handlePacket(Net::Connection *con, const Net::Packet &packet) { - if(packet.getType() != Net::Packet::STATUS) { +void StatusRequestHandler::handlePacket(Net::Connection *con, uint16_t requestId, const XmlPacket &packet) { + if(packet.getType() != "GetStatus") { Logger::log(Logger::ERROR, "Received an unexpected packet."); - con->send(Net::Packets::ErrorPacket(Net::Packet::ERROR, packet.getRequestId(), Exception(Exception::UNEXPECTED_PACKET))); + + XmlPacket ret; + ret.setType("Error"); + ret.add("ErrorCode", Exception::UNEXPECTED_PACKET); + + con->send(ret.encode(requestId)); signalFinished().emit(); return; @@ -40,7 +45,7 @@ void StatusRequestHandler::handlePacket(Net::Connection *con, const Net::Packet // TODO Require authentication connection = con; - requestId = packet.getRequestId(); + rid = requestId; if(!SystemBackend::getUptimeInfo(sigc::mem_fun(this, &StatusRequestHandler::uptimeHandler))) needUptime = false; @@ -56,8 +61,23 @@ void StatusRequestHandler::send() { if(needUptime || needMemory || needLoad || sent) return; - connection->send(Net::Packets::HostStatusPacket(Net::Packet::OK, requestId, uptime, idleTime, - totalMem, freeMem, totalSwap, freeSwap, currentLoad, nProcesses, loadAvg1, loadAvg5, loadAvg15)); + XmlPacket packet; + + packet.setType("OK"); + + packet.add("uptime", uptime); + packet.add("idleTime", idleTime); + packet.add("totalMem", totalMem); + packet.add("freeMem", freeMem); + packet.add("totalSwap", totalSwap); + packet.add("freeSwap", freeSwap); + packet.add("currentLoad", currentLoad); + packet.add("nProcesses", nProcesses); + packet.add("loadAvg1", loadAvg1); + packet.add("loadAvg5", loadAvg5); + packet.add("loadAvg15", loadAvg15); + + connection->send(packet.encode(rid)); sent = true; diff --git a/src/Common/RequestHandlers/StatusRequestHandler.h b/src/Common/RequestHandlers/StatusRequestHandler.h index fd907de..0b53db0 100644 --- a/src/Common/RequestHandlers/StatusRequestHandler.h +++ b/src/Common/RequestHandlers/StatusRequestHandler.h @@ -20,17 +20,17 @@ #ifndef MAD_COMMON_REQUESTHANDLERS_STATUSREQUESTHANDLER_H_ #define MAD_COMMON_REQUESTHANDLERS_STATUSREQUESTHANDLER_H_ -#include "../RequestHandler.h" +#include "../XmlRequestHandler.h" #include <stdint.h> namespace Mad { namespace Common { namespace RequestHandlers { -class StatusRequestHandler : public RequestHandler { +class StatusRequestHandler : public XmlRequestHandler { private: Net::Connection *connection; - uint16_t requestId; + uint16_t rid; bool needUptime, needMemory, needLoad, sent; @@ -60,7 +60,7 @@ class StatusRequestHandler : public RequestHandler { void send(); protected: - virtual void handlePacket(Net::Connection *connection, const Net::Packet &packet); + virtual void handlePacket(Net::Connection *con, uint16_t requestId, const XmlPacket &packet); public: StatusRequestHandler() : needUptime(true), needMemory(true), needLoad(true), sent(false), |