diff options
author | Matthias Schiffer <matthias@gamezock.de> | 2009-05-30 13:37:06 +0200 |
---|---|---|
committer | Matthias Schiffer <matthias@gamezock.de> | 2009-05-30 13:37:06 +0200 |
commit | a77d2d1e08e4e2e8dfb5e4fc326f6c8fe315a898 (patch) | |
tree | 36a4c899af336c7e9dc326da7231d4d9e17e8a1b /src/Net/Connection.h | |
parent | cb8e66c1b1f1c8076053d71347d0b1f96ca0bca1 (diff) | |
download | mad-a77d2d1e08e4e2e8dfb5e4fc326f6c8fe315a898.tar mad-a77d2d1e08e4e2e8dfb5e4fc326f6c8fe315a898.zip |
Thread-sichere Signale implementiert
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); + } }; } |