Chrysalis - CLO3D Extensions
Loading...
Searching...
No Matches
BaseTask.h
Go to the documentation of this file.
1#ifndef CLO3D_BASETASK_H
2#define CLO3D_BASETASK_H
3
4#include "BaseTaskException.h"
5
6#include <mutex>
7#include <functional>
8#include <condition_variable>
9
10#include <QString>
11
13
14template <typename T>
15class QFuture;
16template <typename T>
18
19namespace CLO3D {
21 friend class TaskGroup;
22 friend class TaskExecutor;
23 public:
24 explicit BaseTask(const QString& name);
25 explicit BaseTask(const BaseTask&) = delete;
26 explicit BaseTask(BaseTask&&) noexcept = delete;
27
28 virtual ~BaseTask() = default;
29
30 BaseTask& operator=(const BaseTask&) = delete;
31 BaseTask& operator=(BaseTask&&) noexcept = delete;
32
33 [[nodiscard]] const QString& name() const;
34 protected:
35 virtual void wait() = 0;
36 virtual void run(const std::function<void()>& onSuccess, const std::function<void(const BaseTaskException&)>& onException) = 0;
37 private:
38 QString name_;
39 };
40}
41
42#endif // CLO3D_BASETASK_H
#define CLO3D_EXTENSION
Definition CLO3DExtensionExport.h:12
Definition BaseTaskException.h:12
BaseTask(const BaseTask &)=delete
virtual void wait()=0
BaseTask(const QString &name)
Definition BaseTask.cpp:6
friend class TaskGroup
Definition BaseTask.h:21
BaseTask(BaseTask &&) noexcept=delete
const QString & name() const
Definition BaseTask.cpp:8
virtual void run(const std::function< void()> &onSuccess, const std::function< void(const BaseTaskException &)> &onException)=0
friend class TaskExecutor
Definition BaseTask.h:22
Definition BaseTask.h:17
Definition BaseTask.h:15
Definition BaseCommand.h:8