diff options
29 files changed, 58 insertions, 219 deletions
diff --git a/src/Client/Requests/DaemonCommandRequest.cpp b/src/Client/Requests/DaemonCommandRequest.cpp index 6e82c60..7b444cd 100644 --- a/src/Client/Requests/DaemonCommandRequest.cpp +++ b/src/Client/Requests/DaemonCommandRequest.cpp @@ -34,19 +34,6 @@ void DaemonCommandRequest::sendRequest(Net::Connection *connection, uint16_t req connection->send(packet.encode(requestId)); } -void DaemonCommandRequest::handlePacket(Net::Connection*, uint16_t, const Common::XmlPacket &packet) { - if(packet.getType() == "Error") { - finishWithError(Common::Exception(packet["Where"], packet["ErrorCode"], packet["SubCode"], packet["SubSubCode"])); - return; - } - else if(packet.getType() != "OK") { - finishWithError(Common::Exception(Common::Exception::UNEXPECTED_PACKET)); - return; // TODO Logging - } - - finish(packet); -} - } } } diff --git a/src/Client/Requests/DaemonCommandRequest.h b/src/Client/Requests/DaemonCommandRequest.h index 13a6da6..fa1e436 100644 --- a/src/Client/Requests/DaemonCommandRequest.h +++ b/src/Client/Requests/DaemonCommandRequest.h @@ -20,7 +20,7 @@ #ifndef MAD_CLIENT_REQUEST_DAEMONCOMMANDREQUEST_H_ #define MAD_CLIENT_REQUEST_DAEMONCOMMANDREQUEST_H_ -#include <Common/Request.h> +#include <Common/Requests/SimpleRequest.h> #include <string> namespace Mad { @@ -34,7 +34,6 @@ class DaemonCommandRequest : public Common::Request { protected: virtual void sendRequest(Net::Connection *connection, uint16_t requestId); - virtual void handlePacket(Net::Connection*, uint16_t, const Common::XmlPacket &packet); public: DaemonCommandRequest(const std::string &daemon0, bool reboot0, slot_type slot) : Common::Request(slot), daemon(daemon0), reboot(reboot0) {} diff --git a/src/Client/Requests/DaemonFSInfoRequest.cpp b/src/Client/Requests/DaemonFSInfoRequest.cpp index 919a8f8..acd1179 100644 --- a/src/Client/Requests/DaemonFSInfoRequest.cpp +++ b/src/Client/Requests/DaemonFSInfoRequest.cpp @@ -32,19 +32,6 @@ void DaemonFSInfoRequest::sendRequest(Net::Connection *connection, uint16_t requ connection->send(packet.encode(requestId)); } -void DaemonFSInfoRequest::handlePacket(Net::Connection*, uint16_t, const Common::XmlPacket &packet) { - if(packet.getType() == "Error") { - finishWithError(Common::Exception(packet["Where"], packet["ErrorCode"], packet["SubCode"], packet["SubSubCode"])); - return; - } - else if(packet.getType() != "OK") { - finishWithError(Common::Exception(Common::Exception::UNEXPECTED_PACKET)); - return; // TODO Logging - } - - finish(packet); -} - } } } diff --git a/src/Client/Requests/DaemonFSInfoRequest.h b/src/Client/Requests/DaemonFSInfoRequest.h index a42d85a..ac29a8b 100644 --- a/src/Client/Requests/DaemonFSInfoRequest.h +++ b/src/Client/Requests/DaemonFSInfoRequest.h @@ -34,7 +34,6 @@ class DaemonFSInfoRequest : public Common::Request { protected: virtual void sendRequest(Net::Connection *connection, uint16_t requestId); - virtual void handlePacket(Net::Connection*, uint16_t, const Common::XmlPacket &packet); public: DaemonFSInfoRequest(const std::string &daemon0, slot_type slot) : Common::Request(slot), daemon(daemon0) {} diff --git a/src/Client/Requests/DaemonListRequest.cpp b/src/Client/Requests/DaemonListRequest.cpp deleted file mode 100644 index ec80828..0000000 --- a/src/Client/Requests/DaemonListRequest.cpp +++ /dev/null @@ -1,45 +0,0 @@ -/* - * DaemonListRequest.cpp - * - * Copyright (C) 2008 Matthias Schiffer <matthias@gamezock.de> - * - * This program is free software: you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by the - * Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * See the GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program. If not, see <http://www.gnu.org/licenses/>. - */ - -#include "DaemonListRequest.h" -#include <Net/Connection.h> - -namespace Mad { -namespace Client { -namespace Requests { - -void DaemonListRequest::sendRequest(Net::Connection *connection, uint16_t requestId) { - Common::XmlPacket packet; - - packet.setType("ListHosts"); - connection->send(packet.encode(requestId)); -} - -void DaemonListRequest::handlePacket(Net::Connection*, uint16_t, const Common::XmlPacket &packet) { - if(packet.getType() != "OK") { - finishWithError(Common::Exception(Common::Exception::UNEXPECTED_PACKET)); - return; // TODO Logging - } - - finish(packet); -} - -} -} -} diff --git a/src/Client/Requests/DaemonListRequest.h b/src/Client/Requests/DaemonListRequest.h index 3b561d2..a09894e 100644 --- a/src/Client/Requests/DaemonListRequest.h +++ b/src/Client/Requests/DaemonListRequest.h @@ -20,19 +20,15 @@ #ifndef MAD_CLIENT_REQUEST_DAEMONLISTREQUEST_H_ #define MAD_CLIENT_REQUEST_DAEMONLISTREQUEST_H_ -#include <Common/Request.h> +#include <Common/Requests/SimpleRequest.h> namespace Mad { namespace Client { namespace Requests { -class DaemonListRequest : public Common::Request { - protected: - virtual void sendRequest(Net::Connection *connection, uint16_t requestId); - virtual void handlePacket(Net::Connection*, uint16_t, const Common::XmlPacket &packet); - - public: - DaemonListRequest(slot_type slot) : Common::Request(slot) {} +class DaemonListRequest : public Common::Requests::SimpleRequest { + public: + DaemonListRequest(slot_type slot) : SimpleRequest("ListDaemons", slot) {} }; } diff --git a/src/Client/Requests/DaemonStatusRequest.cpp b/src/Client/Requests/DaemonStatusRequest.cpp index f088fcc..7611d30 100644 --- a/src/Client/Requests/DaemonStatusRequest.cpp +++ b/src/Client/Requests/DaemonStatusRequest.cpp @@ -32,15 +32,6 @@ void DaemonStatusRequest::sendRequest(Net::Connection *connection, uint16_t requ connection->send(packet.encode(requestId)); } -void DaemonStatusRequest::handlePacket(Net::Connection*, uint16_t, const Common::XmlPacket &packet) { - if(packet.getType() != "OK") { - finishWithError(Common::Exception(Common::Exception::UNEXPECTED_PACKET)); - return; // TODO Logging - } - - finish(packet); -} - } } } diff --git a/src/Client/Requests/DaemonStatusRequest.h b/src/Client/Requests/DaemonStatusRequest.h index 2ccc9b2..bf8b7bf 100644 --- a/src/Client/Requests/DaemonStatusRequest.h +++ b/src/Client/Requests/DaemonStatusRequest.h @@ -34,7 +34,6 @@ class DaemonStatusRequest : public Common::Request { protected: virtual void sendRequest(Net::Connection *connection, uint16_t requestId); - virtual void handlePacket(Net::Connection*, uint16_t, const Common::XmlPacket &packet); public: DaemonStatusRequest(const std::string &daemon0, slot_type slot) : Common::Request(slot), daemon(daemon0) {} diff --git a/src/Client/Requests/Makefile.am b/src/Client/Requests/Makefile.am index a96b265..fe09d38 100644 --- a/src/Client/Requests/Makefile.am +++ b/src/Client/Requests/Makefile.am @@ -1,4 +1,4 @@ noinst_LTLIBRARIES = librequests.la -librequests_la_SOURCES = DaemonCommandRequest.cpp DaemonFSInfoRequest.cpp DaemonListRequest.cpp DaemonStatusRequest.cpp +librequests_la_SOURCES = DaemonCommandRequest.cpp DaemonFSInfoRequest.cpp DaemonStatusRequest.cpp noinst_HEADERS = DaemonCommandRequest.h DaemonFSInfoRequest.h DaemonListRequest.h DaemonStatusRequest.h diff --git a/src/Client/Requests/Makefile.in b/src/Client/Requests/Makefile.in index 6558799..0e70532 100644 --- a/src/Client/Requests/Makefile.in +++ b/src/Client/Requests/Makefile.in @@ -53,8 +53,7 @@ CONFIG_CLEAN_FILES = LTLIBRARIES = $(noinst_LTLIBRARIES) librequests_la_LIBADD = am_librequests_la_OBJECTS = DaemonCommandRequest.lo \ - DaemonFSInfoRequest.lo DaemonListRequest.lo \ - DaemonStatusRequest.lo + DaemonFSInfoRequest.lo DaemonStatusRequest.lo librequests_la_OBJECTS = $(am_librequests_la_OBJECTS) DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/config/depcomp @@ -225,7 +224,7 @@ target_alias = @target_alias@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ noinst_LTLIBRARIES = librequests.la -librequests_la_SOURCES = DaemonCommandRequest.cpp DaemonFSInfoRequest.cpp DaemonListRequest.cpp DaemonStatusRequest.cpp +librequests_la_SOURCES = DaemonCommandRequest.cpp DaemonFSInfoRequest.cpp DaemonStatusRequest.cpp noinst_HEADERS = DaemonCommandRequest.h DaemonFSInfoRequest.h DaemonListRequest.h DaemonStatusRequest.h all: all-am @@ -280,7 +279,6 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/DaemonCommandRequest.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/DaemonFSInfoRequest.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/DaemonListRequest.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/DaemonStatusRequest.Plo@am__quote@ .cpp.o: diff --git a/src/Common/Makefile.am b/src/Common/Makefile.am index e1c22b9..f0a0ad7 100644 --- a/src/Common/Makefile.am +++ b/src/Common/Makefile.am @@ -2,7 +2,7 @@ SUBDIRS = Requests RequestHandlers noinst_LTLIBRARIES = libcommon.la libcommon_la_SOURCES = ActionManager.cpp ConfigEntry.cpp ConfigManager.cpp Exception.cpp Initializable.cpp \ - Logger.cpp LogManager.cpp ModuleManager.cpp RequestManager.cpp \ + Logger.cpp LogManager.cpp ModuleManager.cpp Request.cpp RequestManager.cpp \ SystemBackend.cpp Tokenizer.cpp XmlPacket.cpp libcommon_la_LIBADD = Requests/librequests.la RequestHandlers/librequesthandlers.la ../../lib/libgnu.la diff --git a/src/Common/Makefile.in b/src/Common/Makefile.in index d70edc7..9841291 100644 --- a/src/Common/Makefile.in +++ b/src/Common/Makefile.in @@ -55,7 +55,7 @@ libcommon_la_DEPENDENCIES = Requests/librequests.la \ RequestHandlers/librequesthandlers.la ../../lib/libgnu.la am_libcommon_la_OBJECTS = ActionManager.lo ConfigEntry.lo \ ConfigManager.lo Exception.lo Initializable.lo Logger.lo \ - LogManager.lo ModuleManager.lo RequestManager.lo \ + LogManager.lo ModuleManager.lo Request.lo RequestManager.lo \ SystemBackend.lo Tokenizer.lo XmlPacket.lo libcommon_la_OBJECTS = $(am_libcommon_la_OBJECTS) DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) @@ -239,7 +239,7 @@ top_srcdir = @top_srcdir@ SUBDIRS = Requests RequestHandlers noinst_LTLIBRARIES = libcommon.la libcommon_la_SOURCES = ActionManager.cpp ConfigEntry.cpp ConfigManager.cpp Exception.cpp Initializable.cpp \ - Logger.cpp LogManager.cpp ModuleManager.cpp RequestManager.cpp \ + Logger.cpp LogManager.cpp ModuleManager.cpp Request.cpp RequestManager.cpp \ SystemBackend.cpp Tokenizer.cpp XmlPacket.cpp libcommon_la_LIBADD = Requests/librequests.la RequestHandlers/librequesthandlers.la ../../lib/libgnu.la @@ -307,6 +307,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/LogManager.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Logger.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ModuleManager.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Request.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/RequestManager.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/SystemBackend.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Tokenizer.Plo@am__quote@ diff --git a/src/Common/Requests/UserListRequest.cpp b/src/Common/Request.cpp index 2545677..0b8715e 100644 --- a/src/Common/Requests/UserListRequest.cpp +++ b/src/Common/Request.cpp @@ -1,5 +1,5 @@ /* - * UserListRequest.cpp + * Request.cpp * * Copyright (C) 2009 Matthias Schiffer <matthias@gamezock.de> * @@ -17,21 +17,18 @@ * with this program. If not, see <http://www.gnu.org/licenses/>. */ -#include "UserListRequest.h" -#include <Net/Connection.h> +#include <config.h> + +#include "Request.h" namespace Mad { namespace Common { -namespace Requests { - -void UserListRequest::sendRequest(Net::Connection *connection, uint16_t requestId) { - XmlPacket packet; - packet.setType("ListUsers"); - - connection->send(packet.encode(requestId)); -} -void UserListRequest::handlePacket(Net::Connection*, uint16_t, const XmlPacket &packet) { +void Request::handlePacket(Net::Connection *connection _UNUSED_PARAMETER_, uint16_t requestId _UNUSED_PARAMETER_, const XmlPacket &packet) { + if(packet.getType() == "Error") { + finishWithError(Common::Exception(packet["Where"], packet["ErrorCode"], packet["SubCode"], packet["SubSubCode"])); + return; + } if(packet.getType() != "OK") { finishWithError(Exception(Exception::UNEXPECTED_PACKET)); return; // TODO Logging @@ -42,4 +39,3 @@ void UserListRequest::handlePacket(Net::Connection*, uint16_t, const XmlPacket & } } -} diff --git a/src/Common/Request.h b/src/Common/Request.h index b0e6777..ef84194 100644 --- a/src/Common/Request.h +++ b/src/Common/Request.h @@ -53,6 +53,7 @@ class Request : public RequestHandler { void finishWithError(const Exception &e) {exp = e; finished(*this);} virtual void sendRequest(Net::Connection *connection, uint16_t requestId) = 0; + virtual void handlePacket(Net::Connection *connection, uint16_t requestId, const XmlPacket &packet); public: const XmlPacket& getResult() const throw(Exception) { diff --git a/src/Common/Requests/FSInfoRequest.h b/src/Common/Requests/FSInfoRequest.h index 39759ab..27a38ed 100644 --- a/src/Common/Requests/FSInfoRequest.h +++ b/src/Common/Requests/FSInfoRequest.h @@ -20,19 +20,15 @@ #ifndef MAD_COMMON_REQUESTS_FSINFOREQUEST_H_ #define MAD_COMMON_REQUESTS_FSINFOREQUEST_H_ -#include "../Request.h" +#include "SimpleRequest.h" namespace Mad { namespace Common { namespace Requests { -class FSInfoRequest : public Request { - protected: - virtual void sendRequest(Net::Connection *connection, uint16_t requestId); - virtual void handlePacket(Net::Connection*, uint16_t, const Common::XmlPacket &packet); - +class FSInfoRequest : public SimpleRequest { public: - FSInfoRequest(slot_type slot) : Request(slot) {} + FSInfoRequest(slot_type slot) : SimpleRequest("FSInfo", slot) {} }; } diff --git a/src/Common/Requests/Makefile.am b/src/Common/Requests/Makefile.am index eae8669..b5c3bec 100644 --- a/src/Common/Requests/Makefile.am +++ b/src/Common/Requests/Makefile.am @@ -1,4 +1,4 @@ noinst_LTLIBRARIES = librequests.la -librequests_la_SOURCES = DisconnectRequest.cpp FSInfoRequest.cpp GSSAPIAuthRequest.cpp StatusRequest.cpp UserListRequest.cpp +librequests_la_SOURCES = DisconnectRequest.cpp GSSAPIAuthRequest.cpp SimpleRequest.cpp -noinst_HEADERS = DisconnectRequest.h FSInfoRequest.h GSSAPIAuthRequest.h StatusRequest.h UserListRequest.h +noinst_HEADERS = DisconnectRequest.h FSInfoRequest.h GSSAPIAuthRequest.h SimpleRequest.h StatusRequest.h UserListRequest.h diff --git a/src/Common/Requests/Makefile.in b/src/Common/Requests/Makefile.in index f8b1bc6..8533102 100644 --- a/src/Common/Requests/Makefile.in +++ b/src/Common/Requests/Makefile.in @@ -52,8 +52,8 @@ CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = LTLIBRARIES = $(noinst_LTLIBRARIES) librequests_la_LIBADD = -am_librequests_la_OBJECTS = DisconnectRequest.lo FSInfoRequest.lo \ - GSSAPIAuthRequest.lo StatusRequest.lo UserListRequest.lo +am_librequests_la_OBJECTS = DisconnectRequest.lo GSSAPIAuthRequest.lo \ + SimpleRequest.lo librequests_la_OBJECTS = $(am_librequests_la_OBJECTS) DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/config/depcomp @@ -224,8 +224,8 @@ target_alias = @target_alias@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ noinst_LTLIBRARIES = librequests.la -librequests_la_SOURCES = DisconnectRequest.cpp FSInfoRequest.cpp GSSAPIAuthRequest.cpp StatusRequest.cpp UserListRequest.cpp -noinst_HEADERS = DisconnectRequest.h FSInfoRequest.h GSSAPIAuthRequest.h StatusRequest.h UserListRequest.h +librequests_la_SOURCES = DisconnectRequest.cpp GSSAPIAuthRequest.cpp SimpleRequest.cpp +noinst_HEADERS = DisconnectRequest.h FSInfoRequest.h GSSAPIAuthRequest.h SimpleRequest.h StatusRequest.h UserListRequest.h all: all-am .SUFFIXES: @@ -278,10 +278,8 @@ distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/DisconnectRequest.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FSInfoRequest.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/GSSAPIAuthRequest.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/StatusRequest.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/UserListRequest.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/SimpleRequest.Plo@am__quote@ .cpp.o: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< diff --git a/src/Common/Requests/StatusRequest.cpp b/src/Common/Requests/SimpleRequest.cpp index 3526e23..018ac39 100644 --- a/src/Common/Requests/StatusRequest.cpp +++ b/src/Common/Requests/SimpleRequest.cpp @@ -1,7 +1,7 @@ /* - * CoreStatusRequest.cpp + * SimpleRequest.cpp * - * Copyright (C) 2008 Matthias Schiffer <matthias@gamezock.de> + * Copyright (C) 2009 Matthias Schiffer <matthias@gamezock.de> * * This program is free software: you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the @@ -17,29 +17,21 @@ * with this program. If not, see <http://www.gnu.org/licenses/>. */ -#include "StatusRequest.h" +#include "SimpleRequest.h" + #include <Net/Connection.h> namespace Mad { namespace Common { namespace Requests { -void StatusRequest::sendRequest(Net::Connection *connection, uint16_t requestId) { +void SimpleRequest::sendRequest(Net::Connection *connection, uint16_t requestId) { XmlPacket packet; - packet.setType("GetStatus"); + packet.setType(type); connection->send(packet.encode(requestId)); } -void StatusRequest::handlePacket(Net::Connection*, uint16_t, const XmlPacket &packet) { - if(packet.getType() != "OK") { - finishWithError(Exception(Exception::UNEXPECTED_PACKET)); - return; // TODO Logging - } - - finish(packet); -} - } } } diff --git a/src/Common/Requests/FSInfoRequest.cpp b/src/Common/Requests/SimpleRequest.h index 7b5574d..0426910 100644 --- a/src/Common/Requests/FSInfoRequest.cpp +++ b/src/Common/Requests/SimpleRequest.h @@ -1,7 +1,7 @@ /* - * FSInfoRequest.cpp + * SimpleRequest.h * - * Copyright (C) 2008 Matthias Schiffer <matthias@gamezock.de> + * Copyright (C) 2009 Matthias Schiffer <matthias@gamezock.de> * * This program is free software: you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the @@ -17,32 +17,28 @@ * with this program. If not, see <http://www.gnu.org/licenses/>. */ -#include "FSInfoRequest.h" -#include <Net/Connection.h> +#ifndef MAD_COMMON_REQUESTS_SIMPLEREQUEST_H_ +#define MAD_COMMON_REQUESTS_SIMPLEREQUEST_H_ -#include <iostream> +#include "../Request.h" + +#include <string> namespace Mad { namespace Common { namespace Requests { -void FSInfoRequest::sendRequest(Net::Connection *connection, uint16_t requestId) { - XmlPacket packet; - packet.setType("FSInfo"); - - connection->send(packet.encode(requestId)); -} +class SimpleRequest : public Request { + protected: + const std::string type; -void FSInfoRequest::handlePacket(Net::Connection*, uint16_t, const Common::XmlPacket &packet) { - if(packet.getType() != "OK") { - finishWithError(Exception(Exception::UNEXPECTED_PACKET)); - return; // TODO Logging - } + virtual void sendRequest(Net::Connection *connection, uint16_t requestId); - finish(packet); -} + SimpleRequest(const std::string &type0, slot_type slot) : Request(slot), type(type0) {} +}; } } } +#endif /* MAD_COMMON_REQUESTS_SIMPLEREQUEST_H_ */ diff --git a/src/Common/Requests/StatusRequest.h b/src/Common/Requests/StatusRequest.h index eb24305..d557358 100644 --- a/src/Common/Requests/StatusRequest.h +++ b/src/Common/Requests/StatusRequest.h @@ -20,19 +20,15 @@ #ifndef MAD_COMMON_REQUESTS_STATUSREQUEST_H_ #define MAD_COMMON_REQUESTS_STATUSREQUEST_H_ -#include "../Request.h" +#include "SimpleRequest.h" namespace Mad { namespace Common { namespace Requests { -class StatusRequest : public Request { - protected: - virtual void sendRequest(Net::Connection *connection, uint16_t requestId); - virtual void handlePacket(Net::Connection *connection, uint16_t, const XmlPacket &packet); - +class StatusRequest : public SimpleRequest { public: - StatusRequest(slot_type slot) : Request(slot) {} + StatusRequest(slot_type slot) : SimpleRequest("GetStatus", slot) {} }; } diff --git a/src/Common/Requests/UserListRequest.h b/src/Common/Requests/UserListRequest.h index bcd9578..918925c 100644 --- a/src/Common/Requests/UserListRequest.h +++ b/src/Common/Requests/UserListRequest.h @@ -20,19 +20,15 @@ #ifndef MAD_COMMON_REQUESTS_USERLISTREQUEST_H_ #define MAD_COMMON_REQUESTS_USERLISTREQUEST_H_ -#include "../Request.h" +#include "SimpleRequest.h" namespace Mad { namespace Common { namespace Requests { -class UserListRequest : public Request { - protected: - virtual void sendRequest(Net::Connection *connection, uint16_t requestId); - virtual void handlePacket(Net::Connection *connection, uint16_t, const XmlPacket &packet); - +class UserListRequest : public SimpleRequest { public: - UserListRequest(slot_type slot) : Request(slot) {} + UserListRequest(slot_type slot) : SimpleRequest("ListUsers", slot) {} }; } diff --git a/src/Core/Requests/CommandRequest.cpp b/src/Core/Requests/CommandRequest.cpp index 8fdd4c2..a280bc5 100644 --- a/src/Core/Requests/CommandRequest.cpp +++ b/src/Core/Requests/CommandRequest.cpp @@ -32,19 +32,6 @@ void CommandRequest::sendRequest(Net::Connection *connection, uint16_t requestId connection->send(packet.encode(requestId)); } -void CommandRequest::handlePacket(Net::Connection*, uint16_t, const Common::XmlPacket &packet) { - if(packet.getType() == "Error") { - finishWithError(Common::Exception(packet["Where"], packet["ErrorCode"], packet["SubCode"], packet["SubSubCode"])); - return; - } - else if(packet.getType() != "OK") { - finishWithError(Common::Exception(Common::Exception::UNEXPECTED_PACKET)); - return; // TODO Logging - } - - finish(packet); -} - } } } diff --git a/src/Core/Requests/CommandRequest.h b/src/Core/Requests/CommandRequest.h index 9c6c70d..aece5ae 100644 --- a/src/Core/Requests/CommandRequest.h +++ b/src/Core/Requests/CommandRequest.h @@ -32,7 +32,6 @@ class CommandRequest : public Common::Request { protected: virtual void sendRequest(Net::Connection *connection, uint16_t requestId); - virtual void handlePacket(Net::Connection*, uint16_t, const Common::XmlPacket &packet); public: CommandRequest(bool reboot0, slot_type slot) : Common::Request(slot), reboot(reboot0) {} diff --git a/src/Core/Requests/DaemonStateUpdateRequest.cpp b/src/Core/Requests/DaemonStateUpdateRequest.cpp index c00468e..abf51de 100644 --- a/src/Core/Requests/DaemonStateUpdateRequest.cpp +++ b/src/Core/Requests/DaemonStateUpdateRequest.cpp @@ -33,15 +33,6 @@ void DaemonStateUpdateRequest::sendRequest(Net::Connection *connection, uint16_t connection->send(packet.encode(requestId)); } -void DaemonStateUpdateRequest::handlePacket(Net::Connection*, uint16_t, const Common::XmlPacket &packet) { - if(packet.getType() != "OK") { - finishWithError(Common::Exception(Common::Exception::UNEXPECTED_PACKET)); - return; // TODO Logging - } - - finish(packet); -} - } } } diff --git a/src/Core/Requests/DaemonStateUpdateRequest.h b/src/Core/Requests/DaemonStateUpdateRequest.h index f1466b2..3f15e9b 100644 --- a/src/Core/Requests/DaemonStateUpdateRequest.h +++ b/src/Core/Requests/DaemonStateUpdateRequest.h @@ -34,7 +34,6 @@ class DaemonStateUpdateRequest : public Common::Request { protected: virtual void sendRequest(Net::Connection *connection, uint16_t requestId); - virtual void handlePacket(Net::Connection*, uint16_t, const Common::XmlPacket &packet); public: DaemonStateUpdateRequest(const std::string &name0, Common::HostInfo::State state0) : Common::Request(slot_type()), name(name0), state(state0) {} diff --git a/src/Daemon/Requests/IdentifyRequest.cpp b/src/Daemon/Requests/IdentifyRequest.cpp index 6334f00..1ae9372 100644 --- a/src/Daemon/Requests/IdentifyRequest.cpp +++ b/src/Daemon/Requests/IdentifyRequest.cpp @@ -33,15 +33,6 @@ void IdentifyRequest::sendRequest(Net::Connection *connection, uint16_t requestI connection->send(packet.encode(requestId)); } -void IdentifyRequest::handlePacket(Net::Connection*, uint16_t, const Common::XmlPacket &packet) { - if(packet.getType() != "OK") { - finishWithError(Common::Exception(Common::Exception::UNEXPECTED_PACKET)); - return; // TODO Logging - } - - finish(packet); -} - } } } diff --git a/src/Daemon/Requests/IdentifyRequest.h b/src/Daemon/Requests/IdentifyRequest.h index 5009374..b3f48ab 100644 --- a/src/Daemon/Requests/IdentifyRequest.h +++ b/src/Daemon/Requests/IdentifyRequest.h @@ -33,7 +33,6 @@ class IdentifyRequest : public Common::Request { protected: virtual void sendRequest(Net::Connection *connection, uint16_t requestId); - virtual void handlePacket(Net::Connection*, uint16_t, const Common::XmlPacket &packet); public: IdentifyRequest(const std::string &hostname0, slot_type slot) : Common::Request(slot), hostname(hostname0) {} diff --git a/src/Daemon/Requests/LogRequest.cpp b/src/Daemon/Requests/LogRequest.cpp index f7a498d..a7c4d03 100644 --- a/src/Daemon/Requests/LogRequest.cpp +++ b/src/Daemon/Requests/LogRequest.cpp @@ -37,15 +37,6 @@ void LogRequest::sendRequest(Net::Connection *connection, uint16_t requestId) { connection->send(packet.encode(requestId)); } -void LogRequest::handlePacket(Net::Connection*, uint16_t, const Common::XmlPacket &packet) { - if(packet.getType() != "OK") { - finishWithError(Common::Exception(Common::Exception::UNEXPECTED_PACKET)); - return; // TODO Logging - } - - finish(packet); -} - } } } diff --git a/src/Daemon/Requests/LogRequest.h b/src/Daemon/Requests/LogRequest.h index 1045a2f..7cceade 100644 --- a/src/Daemon/Requests/LogRequest.h +++ b/src/Daemon/Requests/LogRequest.h @@ -37,7 +37,6 @@ class LogRequest : public Common::Request { protected: virtual void sendRequest(Net::Connection *connection, uint16_t requestId); - virtual void handlePacket(Net::Connection*, uint16_t, const Common::XmlPacket &packet); public: LogRequest(Common::Logger::MessageCategory category0, Common::Logger::MessageLevel level0, time_t messageTimestamp0, const std::string &message0, slot_type slot) |