Chrysalis - CLO3D Extensions
Loading...
Searching...
No Matches
Task.h
Go to the documentation of this file.
1#ifndef CLO3D_TASK_H
2#define CLO3D_TASK_H
3
4#include <mutex>
5#include <functional>
6#include <condition_variable>
7
8#include <QString>
9#include <QFuture>
10#include <QFutureWatcher>
11
12#include "BaseTask.h"
13#include "TaskException.h"
15
16namespace CLO3D {
18 public:
19 explicit Task(const QString& name, const std::function<void()>& task);
20 ~Task() override;
21 protected:
22 void wait() override;
23 void run(const std::function<void()>& onSuccess, const std::function<void(const BaseTaskException&)>& onException) override;
24 private:
25 QFuture<void> future_;
26 std::function<void()> task_;
27 std::optional<TaskException> exception_;
28 };
29}
30
31#endif // CLO3D_TASK_H
#define CLO3D_EXTENSION
Definition CLO3DExtensionExport.h:12
Definition BaseTaskException.h:12
BaseTask(const QString &name)
Definition BaseTask.cpp:6
const QString & name() const
Definition BaseTask.cpp:8
Task(const QString &name, const std::function< void()> &task)
Definition Task.cpp:17
void wait() override
Definition Task.cpp:25
void run(const std::function< void()> &onSuccess, const std::function< void(const BaseTaskException &)> &onException) override
Definition Task.cpp:30
Definition BaseTask.h:15
Definition BaseCommand.h:8