ACF $AcfVersion:0$
CVariableParamComp.h
Go to the documentation of this file.
1// SPDX-License-Identifier: LGPL-2.1-or-later OR GPL-2.0-or-later OR GPL-3.0-or-later OR LicenseRef-ACF-Commercial
2#pragma once
3
4
5// ACF includes
9
10
11namespace iprm
12{
13
14
17 virtual public IVariableParam
18{
19public:
21
22 I_BEGIN_COMPONENT(CVariableParamComp);
23 I_REGISTER_INTERFACE(iser::ISerializable);
24 I_REGISTER_INTERFACE(IVariableParam);
25 I_ASSIGN_MULTI_0(m_factoriesFact, "Factories", "List of factories for each type", true);
26 I_ASSIGN_MULTI_0(m_factoryIdsAttrPtr, "TypeIds", "List of factory ID for each factory object", true);
27 I_END_COMPONENT;
28
30
31 // reimplemented (iprm::IVariableParam)
32 virtual TypeIds GetKnownTypeIds() const override;
33 virtual QByteArray GetParameterTypeId() const override;
34 virtual iser::ISerializable* GetParameter() const override;
35 virtual bool AssignTypeId(const QByteArray& typeId) override;
36
37 // reimplemented (iser::ISerializable)
38 virtual bool Serialize(iser::IArchive& archive) override;
39 virtual quint32 GetMinimalVersion(int versionId) const override;
40
41private:
42 I_MULTIFACT(iser::ISerializable, m_factoriesFact);
43 I_MULTIATTR(QString, m_factoryIdsAttrPtr);
44
45 QByteArray m_paramTypeId;
47
48 imod::CModelUpdateBridge m_updateBridge;
49};
50
51
52} // namespace iprm
53
54
55
56
Base class for component implementation.
Reflects the changes of observed objects as changes of some other object (over istd::IChangeable),...
virtual TypeIds GetKnownTypeIds() const override
Get list of all known type IDs.
virtual QByteArray GetParameterTypeId() const override
Get type ID of current stored parameter.
virtual bool AssignTypeId(const QByteArray &typeId) override
Assign type ID to this object.
virtual bool Serialize(iser::IArchive &archive) override
Load or store state of this object as a archive stream.
virtual quint32 GetMinimalVersion(int versionId) const override
Get minimal needed version to correct storing of this data.
icomp::CComponentBase BaseClass
virtual iser::ISerializable * GetParameter() const override
Get current parameter instance.
Represents a parameter which can change its type.
QSet< QByteArray > TypeIds
Represents an input/output persistence archive for object serialization.
Definition IArchive.h:164
Common class for all classes which objects can be archived or restored from archive.
Contains interfaces and implementations of flexible parameter concept.