diff options
Diffstat (limited to 'src/Net/Connection.h')
-rw-r--r-- | src/Net/Connection.h | 32 |
1 files changed, 24 insertions, 8 deletions
diff --git a/src/Net/Connection.h b/src/Net/Connection.h index 6678bd9..cda8bfe 100644 --- a/src/Net/Connection.h +++ b/src/Net/Connection.h @@ -23,12 +23,11 @@ #include <config.h> #include "Packet.h" +#include "Signals/Signals.h" #include <boost/asio.hpp> #include <boost/asio/ssl.hpp> -#include <boost/signal.hpp> - #include <boost/thread/shared_mutex.hpp> namespace Mad { @@ -71,9 +70,9 @@ class Connection : boost::noncopyable { Packet::Data header; - boost::signal1<void, const Packet&> receiveSignal; - boost::signal0<void> connectedSignal; - boost::signal0<void> disconnectedSignal; + Signals::Signal1<void, const Packet&> receiveSignal; + Signals::Signal0<void> connectedSignal; + Signals::Signal0<void> disconnectedSignal; bool receiving; unsigned long sending; @@ -172,9 +171,26 @@ class Connection : boost::noncopyable { bool send(const Packet &packet); - boost::signal1<void, const Packet&>& signalReceive() {return receiveSignal;} - boost::signal0<void>& signalConnected() {return connectedSignal;} - boost::signal0<void>& signalDisconnected() {return disconnectedSignal;} + Signals::Connection connectSignalReceive(const Signals::Signal1<void, const Packet&>::slot_type &slot) { + return receiveSignal.connect(slot); + } + void disconnectSignalReceive(const Signals::Connection &connection) { + receiveSignal.disconnect(connection); + } + + Signals::Connection connectSignalConnected(const Signals::Signal0<void>::slot_type &slot) { + return connectedSignal.connect(slot); + } + void disconnectSignalConnected(const Signals::Connection &connection) { + connectedSignal.disconnect(connection); + } + + Signals::Connection connectSignalDisconnected(const Signals::Signal0<void>::slot_type &slot) { + return disconnectedSignal.connect(slot); + } + void disconnectSignalDisconnected(const Signals::Connection &connection) { + disconnectedSignal.disconnect(connection); + } }; } |