4#include "Stroika/Foundation/StroikaPreComp.h"
8#include "ProgressMonitor.h"
13using Memory::MakeSharedPtr;
21 : fRep_{MakeSharedPtr<Rep_> ()}
28 fRep_->fWorkThread_ = workThread;
40 for (
auto i : callbacks) {
48 fRep_->fCallbacks_.rwget ().rwref ().Append (MakeSharedPtr<ChangedCallbackType> (progressChangedCallback));
54 fRep_->fCanceled_ =
true;
55 if (fRep_->fWorkThread_ !=
nullptr) {
56 fRep_->fWorkThread_.Abort ();
65void ProgressMonitor::Updater::CallNotifyProgress_ () const noexcept
68 for (shared_ptr<ChangedCallbackType> f : fRep_->fCallbacks_.load ()) {
#define RequireNotNull(p)
nonvirtual void AddOnProgressCallback(const ChangedCallbackType &progressChangedCallback)
Thread::Ptr is a (unsynchronized) smart pointer referencing an internally synchronized std::thread ob...
Iterable<T> is a base class for containers which easily produce an Iterator<T> to traverse them.