From a77d2d1e08e4e2e8dfb5e4fc326f6c8fe315a898 Mon Sep 17 00:00:00 2001 From: Matthias Schiffer Date: Sat, 30 May 2009 13:37:06 +0200 Subject: Thread-sichere Signale implementiert --- src/Net/Connection.h | 32 ++++++++++++++++++++++++-------- 1 file changed, 24 insertions(+), 8 deletions(-) (limited to 'src/Net/Connection.h') 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 #include "Packet.h" +#include "Signals/Signals.h" #include #include -#include - #include namespace Mad { @@ -71,9 +70,9 @@ class Connection : boost::noncopyable { Packet::Data header; - boost::signal1 receiveSignal; - boost::signal0 connectedSignal; - boost::signal0 disconnectedSignal; + Signals::Signal1 receiveSignal; + Signals::Signal0 connectedSignal; + Signals::Signal0 disconnectedSignal; bool receiving; unsigned long sending; @@ -172,9 +171,26 @@ class Connection : boost::noncopyable { bool send(const Packet &packet); - boost::signal1& signalReceive() {return receiveSignal;} - boost::signal0& signalConnected() {return connectedSignal;} - boost::signal0& signalDisconnected() {return disconnectedSignal;} + Signals::Connection connectSignalReceive(const Signals::Signal1::slot_type &slot) { + return receiveSignal.connect(slot); + } + void disconnectSignalReceive(const Signals::Connection &connection) { + receiveSignal.disconnect(connection); + } + + Signals::Connection connectSignalConnected(const Signals::Signal0::slot_type &slot) { + return connectedSignal.connect(slot); + } + void disconnectSignalConnected(const Signals::Connection &connection) { + connectedSignal.disconnect(connection); + } + + Signals::Connection connectSignalDisconnected(const Signals::Signal0::slot_type &slot) { + return disconnectedSignal.connect(slot); + } + void disconnectSignalDisconnected(const Signals::Connection &connection) { + disconnectedSignal.disconnect(connection); + } }; } -- cgit v1.2.3