Cleanup: use a variable we already made.
[dcpomatic.git] / src / lib / change_signaller.h
index ec1f14ea3e0f987c7c0b2d328af1233cf83f1267..8612cf42672b2c8ca42ae270bb896925a6cd20d4 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (C) 2018 Carl Hetherington <cth@carlh.net>
+    Copyright (C) 2018-2021 Carl Hetherington <cth@carlh.net>
 
     This file is part of DCP-o-matic.
 
 
 */
 
-#ifndef DCPOMATIC_CHANGE_H
-#define DCPOMATIC_CHANGE_H
 
-#include <boost/noncopyable.hpp>
+#ifndef DCPOMATIC_CHANGE_SIGNALLER_H
+#define DCPOMATIC_CHANGE_SIGNALLER_H
 
-template <class T>
-class ChangeSignaller : public boost::noncopyable
+
+enum class ChangeType
+{
+       PENDING,
+       DONE,
+       CANCELLED
+};
+
+
+template <class T, class P>
+class ChangeSignaller
 {
 public:
-       ChangeSignaller (T* t, int p)
+       ChangeSignaller (T* t, P p)
                : _thing (t)
                , _property (p)
                , _done (true)
        {
-               _thing->signal_change (CHANGE_TYPE_PENDING, _property);
+               _thing->signal_change (ChangeType::PENDING, _property);
        }
 
        ~ChangeSignaller ()
        {
                if (_done) {
-                       _thing->signal_change (CHANGE_TYPE_DONE, _property);
+                       _thing->signal_change (ChangeType::DONE, _property);
                } else {
-                       _thing->signal_change (CHANGE_TYPE_CANCELLED, _property);
+                       _thing->signal_change (ChangeType::CANCELLED, _property);
                }
        }
 
+       ChangeSignaller (ChangeSignaller const&) = delete;
+       ChangeSignaller& operator= (ChangeSignaller const&) = delete;
+
        void abort ()
        {
                _done = false;
@@ -51,8 +62,9 @@ public:
 
 private:
        T* _thing;
-       int _property;
+       P _property;
        bool _done;
 };
 
+
 #endif