summaryrefslogtreecommitdiffstats
path: root/src/Common/RequestHandler.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/Common/RequestHandler.h')
-rw-r--r--src/Common/RequestHandler.h20
1 files changed, 17 insertions, 3 deletions
diff --git a/src/Common/RequestHandler.h b/src/Common/RequestHandler.h
index b909e81..f36aae5 100644
--- a/src/Common/RequestHandler.h
+++ b/src/Common/RequestHandler.h
@@ -20,6 +20,8 @@
#ifndef MAD_COMMON_XMLREQUESTHANDLER_H_
#define MAD_COMMON_XMLREQUESTHANDLER_H_
+#include "XmlPacket.h"
+
#include <sigc++/signal.h>
#include <stdint.h>
@@ -32,22 +34,34 @@ class Connection;
namespace Common {
class RequestManager;
-class XmlPacket;
class RequestHandler {
private:
sigc::signal<void> finished;
+ Net::Connection *connection;
+ uint16_t requestId;
+
// Prevent shallow copy
RequestHandler(const RequestHandler &o);
RequestHandler& operator=(const RequestHandler &o);
protected:
- RequestHandler() {}
+ RequestHandler(Net::Connection *connection0, uint16_t requestId0) : connection(connection0), requestId(requestId0) {}
sigc::signal<void> signalFinished() {return finished;}
- virtual void handlePacket(Net::Connection *connection, uint16_t requestId, const XmlPacket &packet) = 0;
+ Net::Connection* getConnection() const {
+ return connection;
+ }
+
+ uint16_t getRequestId() const {
+ return requestId;
+ }
+
+ bool sendPacket(const XmlPacket &packet);
+
+ virtual void handlePacket(const XmlPacket &packet) = 0;
public:
virtual ~RequestHandler() {}