diff options
Diffstat (limited to 'src/Common/RequestHandler.h')
-rw-r--r-- | src/Common/RequestHandler.h | 20 |
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() {} |