diff options
author | Matthias Schiffer <matthias@gamezock.de> | 2008-09-13 03:59:58 +0200 |
---|---|---|
committer | Matthias Schiffer <matthias@gamezock.de> | 2008-09-13 03:59:58 +0200 |
commit | 7e87778a02f3d37865c10051a3f14038bbbcbaef (patch) | |
tree | b1853c2e1d94d0d8d7d87b3e5db73fa618019b29 /src/Common/Request/DisconnectRequest.h | |
parent | 920c506d477bd7f357e05590e8cdedf8e5e8a1b8 (diff) | |
download | mad-7e87778a02f3d37865c10051a3f14038bbbcbaef.tar mad-7e87778a02f3d37865c10051a3f14038bbbcbaef.zip |
Benutze weniger Inline-Funktionen
Diffstat (limited to 'src/Common/Request/DisconnectRequest.h')
-rw-r--r-- | src/Common/Request/DisconnectRequest.h | 47 |
1 files changed, 7 insertions, 40 deletions
diff --git a/src/Common/Request/DisconnectRequest.h b/src/Common/Request/DisconnectRequest.h index 1b2d467..136ef73 100644 --- a/src/Common/Request/DisconnectRequest.h +++ b/src/Common/Request/DisconnectRequest.h @@ -21,60 +21,27 @@ #define MAD_COMMON_REQUEST_DISCONNECTREQUEST_H_ #include "Request.h" -#include "../RequestManager.h" -#include <Net/Connection.h> -#include <Net/Packet.h> #include <sigc++/signal.h> namespace Mad { namespace Common { + +class RequestManager; + namespace Request { -class DisconnectRequest: public Request { +class DisconnectRequest : public Request { private: sigc::signal<void> finished; DisconnectRequest() {} public: - static bool send(Net::Connection *connection, RequestManager &requestManager, const sigc::slot<void> &callback) { - DisconnectRequest *request = new DisconnectRequest(); - - request->finished.connect(callback); - - if(requestManager.sendRequest(connection, request)) - return true; - - delete request; - return false; - } - - virtual bool sendRequest(Net::Connection *connection, uint16_t requestId) { - if(isSent()) - return false; - - if(!connection->send(Net::Packet(Net::Packet::DISCONNECT, requestId))) - return false; - - setSent(); - return true; - } - - virtual bool handlePacket(Net::Connection *connection, const Net::Packet &packet) { - if(isFinished()) - return false; - - if(packet.getType() != Net::Packet::OK) - return false; // TODO Logging - - connection->disconnect(); - - finished(); + static bool send(Net::Connection *connection, RequestManager &requestManager, const sigc::slot<void> &callback); - setFinished(); - return true; - } + virtual bool sendRequest(Net::Connection *connection, uint16_t requestId); + virtual bool handlePacket(Net::Connection *connection, const Net::Packet &packet); }; } |