Astra Linux Directory Client Core API  1.7.0
 Указатель Классы Пространства имен Файлы Функции Переменные Определения типов Перечисления Элементы перечислений Макросы Группы Страницы
ALDThread.h
См. документацию.
1 
6 #ifndef ALD_THREAD
7 #define ALD_THREAD
8 
9 #include "common.h"
10 #include "atomic"
11 #include "thread"
12 
13 using namespace std;
14 
15 namespace ALD
16 {
17 
27 {
28 protected:
29  bool m_bStarted;
31  atomic_bool m_abTerminate;
32  thread m_th;
33 
35  static void ThreadProc(CALDAbstractThread *owner);
36 
38  virtual void Execute() = 0;
40  virtual void DoTerminate() {}
41 public:
43 
45  bool Start();
46 
48  bool Terminate(bool join);
49 
52  bool IsTerminated();
53  inline bool IsStarted() const {return m_bStarted;}
54  inline bool IsCompleted() {return IsTerminated() && m_bStarted;}
56 
58  void Join();
59 
60  virtual ~CALDAbstractThread();
61 };
62 
64 
65 } // ALD
66 
67 #endif //ALD_THREAD
bool m_bTerminated
Признак прерывания
Definition: ALDThread.h:30
bool IsCompleted()
Definition: ALDThread.h:54
bool m_bStarted
Признак запуска
Definition: ALDThread.h:29
Базовый класс потока обработки Astra Linux Directory.
Definition: ALDThread.h:26
thread m_th
Дескриптор потока
Definition: ALDThread.h:32
virtual void DoTerminate()
Перегружаемая функция дополнительный действий при остановке
Definition: ALDThread.h:40
Основной заголовочный файл, содержащий необходимый минимум предварительных объявлений и включений дру...
atomic_bool m_abTerminate
Внутренний признак прерывания
Definition: ALDThread.h:31
bool IsStarted() const
Definition: ALDThread.h:53