-
Notifications
You must be signed in to change notification settings - Fork 0
/
BasicThread.h
102 lines (78 loc) · 4 KB
/
BasicThread.h
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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
//----------------------------------------------------------------------------//
// *** МНОГОПОТОЧНАЯ КРОССПЛАТФОРМЕННАЯ СИСТЕМА ОБМЕНА ДАННЫМИ *** //
// //
// Файл BasicThread.h //
// //
// *** TBASICTHREAD БАЗОВЫЙ ПОТОК *** //
// //
// //
// Автор ГЛУЩЕНКО Сергей //
// //
// Москва //
//----------------------------------------------------------------------------//
#ifndef BASICTHREAD_H
#define BASICTHREAD_H
#include <QThread>
#include "../Calendar/Calendar.h"
class TBasicThread : public QThread
{
Q_OBJECT
signals:
//Генерируется в случае возникновения ошибки в потоке
// Возвращает:
// - номер потока;
// - длительность работы потока [сек];
// - описание ошибки
void Error(int Number, int Duration, QString Str);
//Генерируется в случае успешного завершения потока
// Возвращает:
// - номер потока;
// - длительность работы потока [сек]
void Success(int Number, int Duration);
//Генерируется при необходимости передачи словесного сообщения вызывающей программе
// Возвращает:
// - номер потока;
// - текст сообщения
void Message(int Number, QString Str);
public:
//Тип описывает состояние потока
enum TStatus
{
NONE = 0, //Поток НЕ запускался
WORK = 1, //Поток работает
FINISH_ERROR = 2, //Поток завершился с ошибкой
FINISH_SUCCESS = 3 //Поток завершился успешно
};
private:
int Number; //Номер потока
double Start, Stop; //Время начала и время окончания работы потока
TStatus Status; //Состояние потока
QString ErrorNote; //Описание ошибки
//Засекает время окончания работы потока
void CheckStop(void);
protected:
//Засекает время начала работы потока, очищает атрибут ErrorNote
void CheckStart(void);
//Генерирует сигнал Error и сохраняет описание ошибки в атрибуте ErrorNote
void TryError(int Number, QString Str);
//Генерирует сигнал Success, очищает атрибут ErrorNote
void TrySuccess(int Number);
//Генерирует сигнал Message
void TryMessage(int Number, QString Str);
public:
TBasicThread(void);
virtual ~TBasicThread(void);
//Рабочий метод потока
virtual void run(void);
//Устанавливает номер потока
void SetNumber(int _Number);
//Возвращает номер потока
int GetNumber(void);
//Возвращает длительность работы потока [сек]
int GetDuration(void);
//Возвращает состояние потока
TStatus GetStatus(void);
//Возвращает описание ошибки
QString GetErrorNote(void);
};
#endif