ImagingTools Core SDK
IJobProcessor.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// ACF includes
6#include <istd/TIFactory.h>
7#include <iproc/IProcessor.h>
8
9// ImtCore includes
10#include <imtbase/IReferenceCollection.h>
11
12
13namespace imthype
14{
15
16
17class IJobOutput;
18
19
23class IJobProcessor: virtual public iproc::IProcessor
24{
25public:
29 virtual QByteArray GetTaskTypeId() const = 0;
30
39 virtual int ExecuteTask(
41 const iprm::IParamsSet& params,
42 IJobOutput& output,
43 ibase::IProgressManager* progressManagerPtr = nullptr) const = 0;
44};
45
46
47typedef istd::TIFactory<IJobProcessor> IJobProcessorFactory;
48typedef istd::TUniqueInterfacePtr<IJobProcessor> IJobProcessorUniquePtr;
49typedef istd::TSharedInterfacePtr<IJobProcessor> IJobProcessorSharedPtr;
50
51
52} // namespace imthype
53
54
virtual QByteArray GetTaskTypeId() const =0
virtual int ExecuteTask(const imtbase::IReferenceCollection &input, const iprm::IParamsSet &params, IJobOutput &output, ibase::IProgressManager *progressManagerPtr=nullptr) const =0