From d3a7b7c10b0ef7a3d8c8ea7f1aef2468702dd8f4 Mon Sep 17 00:00:00 2001 From: Matthias Schiffer Date: Thu, 4 Jun 2009 22:32:56 +0200 Subject: Alte Signal-Implementierung entfernt --- src/Net/Signals/SignalBase.h | 43 ++++++++----------------------------------- 1 file changed, 8 insertions(+), 35 deletions(-) (limited to 'src/Net/Signals/SignalBase.h') diff --git a/src/Net/Signals/SignalBase.h b/src/Net/Signals/SignalBase.h index 9e2de62..ea1b1e9 100644 --- a/src/Net/Signals/SignalBase.h +++ b/src/Net/Signals/SignalBase.h @@ -23,54 +23,27 @@ #include "Connection.h" #include -#include -#include #include namespace Mad { namespace Net { namespace Signals { -template class SignalBase : private boost::noncopyable { - public: - typedef boost::slot slot_type; + private: + friend class Connection; - protected: - typedef SignalType signal_type; + unsigned long connectionId; - std::set connections; + protected: boost::mutex mutex; - signal_type signal; - - SignalBase() {} - ~SignalBase() { - // Wait for other threads - boost::lock_guard lock(mutex); + Connection getNewConnection() { + return Connection(this, connectionId++); } - public: - Connection connect(const slot_type &slot) { - boost::lock_guard lock(mutex); - - boost::signals::connection con(signal.connect(slot)); - - connections.insert(con); - return con; - } - - void disconnect(const Connection &connection) { - boost::lock_guard lock(mutex); - - std::set::iterator it = connections.find(connection.connection); - - if(it == connections.end()) - return; - - it->disconnect(); - connections.erase(it); - } + SignalBase() : connectionId(0) {} + virtual ~SignalBase() {} }; } -- cgit v1.2.3