ImagingTools Core SDK
CDelegatedParamsSetComp.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 <icomp/CComponentBase.h>
7#include <iprm/IParamsSet.h>
8
9
10namespace imtbase
11{
12
13
14class CDelegatedParamsSetComp:
15 public icomp::CComponentBase,
16 virtual public iprm::IParamsSet
17
18{
19public:
20 typedef icomp::CComponentBase BaseClass;
21
22 I_BEGIN_COMPONENT(CDelegatedParamsSetComp);
23 I_REGISTER_INTERFACE(iser::ISerializable);
24 I_REGISTER_INTERFACE(IParamsSet);
25 I_ASSIGN(m_paramsSetCompPtr, "DelegatedParamsSet", "Delegated params set", false, "DelegatedParamsSet");
26 I_END_COMPONENT;
27
28 // reimplemented (iprm::IParamsSet)
29 virtual Ids GetParamIds(bool editableOnly = false) const override;
30 virtual const iser::ISerializable* GetParameter(const QByteArray& id) const override;
31 virtual iser::ISerializable* GetEditableParameter(const QByteArray& id) override;
32 virtual const iprm::IParamsInfoProvider* GetParamsInfoProvider() const override;
33
34 // reimplemented (iser::ISerializable)
35 virtual bool Serialize(iser::IArchive& archive) override;
36
37private:
38 I_REF(iprm::IParamsSet, m_paramsSetCompPtr);
39};
40
41
42} // namespace imtbase
43
44