diff options
Diffstat (limited to 'src/Net/Signals/Connection.h')
-rw-r--r-- | src/Net/Signals/Connection.h | 22 |
1 files changed, 15 insertions, 7 deletions
diff --git a/src/Net/Signals/Connection.h b/src/Net/Signals/Connection.h index 0e66611..7730e13 100644 --- a/src/Net/Signals/Connection.h +++ b/src/Net/Signals/Connection.h @@ -20,22 +20,30 @@ #ifndef MAD_NET_SIGNALS_CONNECTION_H_ #define MAD_NET_SIGNALS_CONNECTION_H_ -#include <boost/signals/connection.hpp> - namespace Mad { namespace Net { namespace Signals { -template <typename SignalType, typename FunctionType> class SignalBase; +class SignalBase; class Connection { private: - template <typename SignalType, typename FunctionType> friend class SignalBase; + friend class SignalBase; + + SignalBase *signal; + unsigned long id; + + Connection(SignalBase *signal0, unsigned long id0) + : signal(signal0), id(id0) {} - boost::signals::connection connection; + public: + bool operator==(const Connection &o) const { + return (signal == o.signal && id == o.id); + } - Connection(const boost::signals::connection &connection0) - : connection(connection0) {} + bool operator<(const Connection &o) const { + return (signal != o.signal) ? (signal < o.signal) : (id < o.id); + } }; } |