summaryrefslogtreecommitdiffstats
path: root/src/Common/Request/DisconnectRequest.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/Common/Request/DisconnectRequest.h')
-rw-r--r--src/Common/Request/DisconnectRequest.h10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/Common/Request/DisconnectRequest.h b/src/Common/Request/DisconnectRequest.h
index 48256a7..c20a3d0 100644
--- a/src/Common/Request/DisconnectRequest.h
+++ b/src/Common/Request/DisconnectRequest.h
@@ -25,18 +25,24 @@
#include <Net/Connection.h>
#include <Net/Packet.h>
+#include <sigc++/signal.h>
+
namespace Mad {
namespace Common {
namespace Request {
class DisconnectRequest: public Request {
private:
+ sigc::signal<void> finished;
+
DisconnectRequest() {}
public:
- static bool send(Net::Connection *connection, RequestManager &requestManager) {
+ 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;
@@ -64,6 +70,8 @@ class DisconnectRequest: public Request {
connection->disconnect();
+ finished();
+
setFinished();
return true;
}