ACF $AcfVersion:0$
CRegistryElement.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// Qt includes
6#include <QtCore/QByteArray>
7#include <QtCore/QMap>
8
9// ACF includes
11
12
13namespace icomp
14{
15
16
17class IAttributeStaticInfo;
18
19
21{
22public:
24
25 virtual AttributeInfo* GetAttributeInfo(const QByteArray& attributeId);
26
27 // reimplemented (icomp::IRegistryElement)
28 virtual quint32 GetElementFlags() const override;
29 virtual void SetElementFlags(quint32 flags) override;
30 virtual AttributeInfo* InsertAttributeInfo(const QByteArray& attributeId, const QByteArray& attributeType) override;
31 virtual iser::IObject* CreateAttribute(const QByteArray& attributeType) const override;
32 virtual const AttributeInfo* GetAttributeInfo(const QByteArray& attributeId) const override;
33 virtual bool RemoveAttribute(const QByteArray& attributeId) override;
34
35 // reimplemented (iattr::IAttributesProvider)
36 virtual AttributeIds GetAttributeIds() const override;
37 virtual iser::IObject* GetAttribute(const QByteArray& attributeId) const override;
38
39 // reimplemented (iser::ISerializable)
40 virtual bool Serialize(iser::IArchive& archive) override;
41
42protected:
43 iser::IObject* CreateAttributeIntern(const QByteArray& attributeType) const;
44
45private:
46 quint32 m_elementFlags;
47
48 typedef QMap<QByteArray, AttributeInfo> AttributeInfoMap;
49 AttributeInfoMap m_attributeInfos;
50};
51
52
53} // namespace icomp
54
55
56
57
virtual bool Serialize(iser::IArchive &archive) override
Load or store state of this object as a archive stream.
virtual quint32 GetElementFlags() const override
Get flags of this registry element.
virtual void SetElementFlags(quint32 flags) override
Set flags of this registry element.
virtual AttributeInfo * GetAttributeInfo(const QByteArray &attributeId)
virtual bool RemoveAttribute(const QByteArray &attributeId) override
Removes attribute info structure from this collection.
virtual AttributeInfo * InsertAttributeInfo(const QByteArray &attributeId, const QByteArray &attributeType) override
Insert new attribute info object to collection of attributes.
virtual AttributeIds GetAttributeIds() const override
Get list of all attribute IDs.
virtual iser::IObject * CreateAttribute(const QByteArray &attributeType) const override
Create attribute object for specified ID.
iser::IObject * CreateAttributeIntern(const QByteArray &attributeType) const
virtual const AttributeInfo * GetAttributeInfo(const QByteArray &attributeId) const override
Get access to stored attribute info structure.
virtual iser::IObject * GetAttribute(const QByteArray &attributeId) const override
Get property with the given index.
Represents element of registry describing component parameters.
Represents an input/output persistence archive for object serialization.
Definition IArchive.h:164
Common interface for factorisable model objects.
Definition IObject.h:23
Package with interfaces and class used for components concept.
Describe information stored with each attribute.