ImagingTools Core SDK
CTaskParamsComp.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 <imod/TModelWrap.h>
7#include <iprm/IIdParam.h>
8#include <iprm/CComposedParamsSetComp.h>
9
10// Acula includes
11#include <imthype/ITaskCollectionContext.h>
12
13
14namespace imthype
15{
16
17
18class CTaskParamsComp: public iprm::CComposedParamsSetComp
19{
20public:
21 typedef iprm::CComposedParamsSetComp BaseClass;
22
23 I_BEGIN_COMPONENT(CTaskParamsComp);
24 I_ASSIGN(m_collectionContextCompPtr, "CollectionContext", "Context of the task-related parameters", true, "CollectionContext");
25 I_END_COMPONENT;
26
27 // reimplemented (iprm::IParamsSet)
28 virtual Ids GetParamIds(bool editableOnly = false) const override;
29 virtual const iser::ISerializable* GetParameter(const QByteArray& id) const override;
30 virtual const iprm::IParamsInfoProvider* GetParamsInfoProvider() const override;
31
32protected:
33 // reimplemented (icomp::CComponentBase)
34 virtual void OnComponentCreated() override;
35
36private:
37 class TaskIdParam: virtual public iprm::IIdParam
38 {
39 public:
40 TaskIdParam();
41
42 void SetCollectionContext(const ITaskCollectionContext* contextPtr);
43
44 // reimplemented (iprm::IIdParam)
45 virtual QByteArray GetId() const override;
46 virtual void SetId(const QByteArray& id) override;
47
48 // reimplemented (iser::ISerializable)
49 virtual bool Serialize(iser::IArchive& archive) override;
50
51 protected:
52 const ITaskCollectionContext* m_contextPtr;
53 };
54
55 class TaskInputIdParam: public TaskIdParam
56 {
57 public:
58 // reimplemented (iprm::IIdParam)
59 virtual QByteArray GetId() const override;
60 };
61
62 imod::TModelWrap<TaskIdParam> m_taskIdParam;
63 imod::TModelWrap<TaskInputIdParam> m_taskInputIdParam;
64private:
65 I_REF(ITaskCollectionContext, m_collectionContextCompPtr);
66};
67
68
69} // namespace imthype
70
71