diff options
Diffstat (limited to 'src/Common/Request/DisconnectRequest.h')
-rw-r--r-- | src/Common/Request/DisconnectRequest.h | 10 |
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; } |