Use hyphen for XML property names
[ardour.git] / libs / pbd / pbd / signals.h
index 42727b7adce6e9aef184d636de38dd336d5911f2..df4c9cef29331c5d3b0477143d932e0c7fc4df8e 100644 (file)
@@ -78,7 +78,12 @@ protected:
 class LIBPBD_API Connection : public boost::enable_shared_from_this<Connection>
 {
 public:
-       Connection (SignalBase* b) : _signal (b) {}
+       Connection (SignalBase* b, PBD::EventLoop::InvalidationRecord* ir) : _signal (b), _invalidation_record (ir)
+       {
+               if (_invalidation_record) {
+                       _invalidation_record->ref ();
+               }
+       }
 
        void disconnect ()
        {
@@ -89,15 +94,26 @@ public:
                }
        }
 
+       void disconnected ()
+       {
+               if (_invalidation_record) {
+                       _invalidation_record->unref ();
+               }
+       }
+
        void signal_going_away ()
        {
                Glib::Threads::Mutex::Lock lm (_mutex);
+               if (_invalidation_record) {
+                       _invalidation_record->unref ();
+               }
                _signal = 0;
        }
 
 private:
         Glib::Threads::Mutex _mutex;
        SignalBase* _signal;
+       PBD::EventLoop::InvalidationRecord* _invalidation_record;
 };
 
 template<typename R>