diff options
Diffstat (limited to 'src/Common/Requests/DisconnectRequest.cpp')
-rw-r--r-- | src/Common/Requests/DisconnectRequest.cpp | 27 |
1 files changed, 5 insertions, 22 deletions
diff --git a/src/Common/Requests/DisconnectRequest.cpp b/src/Common/Requests/DisconnectRequest.cpp index 81208f2..d8e7ee9 100644 --- a/src/Common/Requests/DisconnectRequest.cpp +++ b/src/Common/Requests/DisconnectRequest.cpp @@ -18,42 +18,25 @@ */ #include "DisconnectRequest.h" -#include "../RequestManager.h" +#include <Net/Connection.h> namespace Mad { namespace Common { namespace Requests { -bool DisconnectRequest::send(Net::Connection *connection, const sigc::slot<void> &callback) { - DisconnectRequest *request = new DisconnectRequest(); - - request->finished.connect(callback); - - if(Mad::Common::RequestManager::getRequestManager()->sendRequest(connection, request)) - return true; - - delete request; - return false; -} - -bool DisconnectRequest::sendRequest(Net::Connection *connection, uint16_t requestId) { - if(!connection->send(Net::Packet(Net::Packet::DISCONNECT, requestId))) - return false; - - return true; +void DisconnectRequest::sendRequest(Net::Connection *connection, uint16_t requestId) { + connection->send(Net::Packet(Net::Packet::DISCONNECT, requestId)); } void DisconnectRequest::handlePacket(Net::Connection *connection, const Net::Packet &packet) { if(packet.getType() != Net::Packet::OK) { - signalFinished().emit(); + finishWithError(Exception(Exception::UNEXPECTED_PACKET)); return; // TODO Logging } connection->disconnect(); - finished(); - - signalFinished().emit(); + finish(); } } |