ImagingTools Core SDK
CWorkerBase.h
1// SPDX-License-Identifier: LGPL-2.1-or-later OR GPL-2.0-or-later OR GPL-3.0-or-later OR LicenseRef-ImtCore-Commercial
2#pragma once
3
4
5// Qt includes
6#include <QtCore/QThread>
7#include <QtCore/QMutex>
8
9
10namespace imtlog
11{
12
13
14class CWorkerBase: public QThread
15{
16 Q_OBJECT
17public:
18 CWorkerBase();
19
20 void Start();
21
22private Q_SLOTS:
23 void OnFinished();
24
25private:
26 enum ThreadState
27 {
28 TS_IDLE = 0,
29 TS_RUNNING,
30 TS_PENDING
31 };
32
33 ThreadState m_state;
34 QMutex m_stateMutex;
35};
36
37
38} // namespace imtlog
39
40