summaryrefslogtreecommitdiffstats
path: root/src/Common/Requests/DisconnectRequest.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/Common/Requests/DisconnectRequest.cpp')
-rw-r--r--src/Common/Requests/DisconnectRequest.cpp27
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();
}
}