X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Flib%2Fchange_signaller.h;h=8612cf42672b2c8ca42ae270bb896925a6cd20d4;hb=b56ca8250b8eae123c0992a50f5cabe99e655763;hp=6c4c150f2cf468616776e576ecfbed5e95666aa9;hpb=a8f7f04a68b3bdf3df1975541323166bf472a6cd;p=dcpomatic.git diff --git a/src/lib/change_signaller.h b/src/lib/change_signaller.h index 6c4c150f2..8612cf426 100644 --- a/src/lib/change_signaller.h +++ b/src/lib/change_signaller.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2018 Carl Hetherington + Copyright (C) 2018-2021 Carl Hetherington This file is part of DCP-o-matic. @@ -18,32 +18,43 @@ */ + #ifndef DCPOMATIC_CHANGE_SIGNALLER_H #define DCPOMATIC_CHANGE_SIGNALLER_H -#include -template -class ChangeSignaller : public boost::noncopyable +enum class ChangeType +{ + PENDING, + DONE, + CANCELLED +}; + + +template +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