ImagingTools Core SDK
IJobTicket.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// Qt includes
5#include <functional>
6
7// ImtCore includes
8#include <imtbase/IReferenceCollection.h>
9
10// Acula includes
11#include <imthype/IJobQueueManager.h>
12
13
14namespace imthype
15{
16
17
18class IJobTicket: virtual public iser::ISerializable
19{
20public:
21 enum MetaInfoTypes
22 {
23 MIT_TYPE_ID,
24 MIT_UUID,
25 MIT_JOB_NAME,
26 MIT_CONTEXT_ID,
27 MIT_PROGRESS,
28 MIT_PROCESSING_STATUS
29 };
30
31 typedef std::function<iprm::IParamsSetSharedPtr(const QByteArray& contextId, const QByteArray& typeId)> ParamsFactoryFunction;
32
33 virtual QByteArray GetTypeId() const = 0;
34 virtual void SetTypeId(const QByteArray& typeId) = 0;
35
36 virtual QByteArray GetUuid() const = 0;
37 virtual void SetUuid(const QByteArray& uuid) = 0;
38
39 virtual QString GetJobName() const = 0;
40 virtual void SetJobName(const QString& name) = 0;
41
42 virtual QByteArray GetContextId() const = 0;
43 virtual void SetContextId(const QByteArray& contextId) = 0;
44
45 virtual iprm::IParamsSetSharedPtr GetParams() const = 0;
46 virtual iprm::IParamsSetSharedPtr CreateParams() const = 0;
47 virtual void SetParams(const iprm::IParamsSetSharedPtr& paramsPtr) = 0;
48
49 virtual IJobQueueManager::ProcessingStatus GetProcessingStatus() const = 0;
50 virtual void SetProcessingStatus(IJobQueueManager::ProcessingStatus status) = 0;
51
52 virtual double GetProgress() const = 0;
53 virtual void SetProgress(double progress) = 0;
54
55 virtual const IJobOutput* GetResults() const = 0;
56 virtual void SetResults(const IJobOutput& results) = 0;
57
58 virtual const imtbase::IReferenceCollection* GetInput() const = 0;
59 virtual void SetInput(const imtbase::IReferenceCollection& input) = 0;
60 // JobStatus - Progress, ProcassingStatus, MessageContainer log
61
62 virtual void SetParamsFactory(const ParamsFactoryFunction& factory) = 0;
63};
64
65
66typedef istd::TSharedInterfacePtr<IJobTicket> IJobTicketSharedPtr;
67
68
69} // namespace imthype
70
71