ImagingTools Core SDK
CJobQueueManagerComp.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// Acula includes
5#include <imthype/CJobQueueManagerCompBase.h>
6
7
8namespace imthype
9{
10
11
12class CJobQueueManagerComp:
13 public CJobQueueManagerCompBase,
14 virtual public IJobQueueManager
15{
16 Q_OBJECT
17public:
18 typedef CJobQueueManagerCompBase BaseClass;
19
20 I_BEGIN_COMPONENT(CJobQueueManagerComp);
21 I_REGISTER_INTERFACE(IJobQueueManager);
22 I_ASSIGN(m_taskInfoListCompPtr, "TaskInfoList", "List of informations about registered job tasks", true, "TaskInfoList");
23 I_ASSIGN_MULTI_0(m_taskParamsFactoriesCompPtr, "TaskParamsFactories", "List of factories used for parameter creation related to the registered tasks", false);
24 I_END_COMPONENT;
25
26 CJobQueueManagerComp();
27
28 // reimplemented (IJobQueueManager)
29 virtual const iprm::IOptionsList* GetSupportedTasks() const override;
30 virtual iprm::IParamsSetUniquePtr CreateJobParameters(
31 const QByteArray& contextId,
32 const QByteArray& taskTypeId,
33 const iprm::IParamsSet* defaultParamPtr) const override;
34protected:
35 int FindTaskById(const QByteArray& taskTypeId) const;
36
37protected:
38 I_REF(iprm::IOptionsList, m_taskInfoListCompPtr);
39 I_MULTIFACT(iprm::IParamsSet, m_taskParamsFactoriesCompPtr);
40};
41
42
43} // namespace imthype
44
45