summaryrefslogtreecommitdiffstats
path: root/src/Common/RequestHandlers
diff options
context:
space:
mode:
authorMatthias Schiffer <matthias@gamezock.de>2009-02-24 22:03:34 +0100
committerMatthias Schiffer <matthias@gamezock.de>2009-02-24 22:03:34 +0100
commitf85b6d5ab264910f272e69ce5997cebec54886ce (patch)
tree06b801d5b11c2d8a2dfae16b698ebaf0b74f429b /src/Common/RequestHandlers
parent8d629ca48e9b5530416127e2e52c945fe1f9ee52 (diff)
downloadmad-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.cpp36
-rw-r--r--src/Common/RequestHandlers/StatusRequestHandler.h8
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),