-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathaddDelThread.h
More file actions
50 lines (37 loc) · 1.23 KB
/
addDelThread.h
File metadata and controls
50 lines (37 loc) · 1.23 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#ifndef ADDDELTHREAD_H
#define ADDDELTHREAD_H
#include <mutex>
#include <condition_variable>
#include <vector>
#include <memory>
#include <QObject>
#include <iTask.h>
class TaskManager;
class Worker;
class AddDelThread : public QObject {
Q_OBJECT
public:
explicit AddDelThread(TaskManager* taskManager) : taskManager(taskManager), countAddWorkers(0), flagCloseApp(false) {}
void run();
// Методы для добавления и удаления воркеров
void setAddWorkers(short count);
void setDeleteWorker(int workerId);
void setAddTasks(short count) ;
void setDeleteTask(int taskId);
// Сигналы
signals:
void taskAdded(std::shared_ptr<ITask> task); // Используем std::shared_ptr для совместимости
void workersChanged();
private:
TaskManager* taskManager;
short countAddTask = 0;
std::mutex mutex;
std::condition_variable condition;
std::vector<int> vecWorkerDelete; // Для ID воркеров, которые нужно удалить
std::vector<short> vecTaskDelete;
short countAddWorkers;
bool flagCloseApp;
template <typename T>
std::unique_ptr<ITask> createRandomTask();
};
#endif // ADDDELTHREAD_H