ImagingTools Core SDK
CWorker.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// ImtCore includes
5#include <imtrest/IRequestServlet.h>
6
7// Qt includes
8#include <QtCore/QObject>
9#include <QtCore/QMutex>
10
11
12namespace imtrest
13{
14
15class CWorkerManagerComp;
16class CWorkerThread;
17
18
19class CWorker: public QObject
20{
21 Q_OBJECT
22public:
23 CWorker(imtrest::IRequestServletPtr&& requestServletPtr, CWorkerThread* workerThread);
24
25Q_SIGNALS:
26 void FinishProcess(const IRequest* request, const QByteArray& subCommandId);
27
28public Q_SLOTS:
29 void ProcessRequest(const IRequest* request, const QByteArray& subCommandId);
30
31private:
32 IRequestServletPtr m_requestServletPtr;
33 mutable QMutex m_processMutex;
34
35 CWorkerThread* m_workerThread;
36};
37
38
39} // namespace imtrest
40
41