ACF $AcfVersion:0$
IRegistryElement.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/QSet>
8
9// ACF includes
10#include <istd/TDelPtr.h>
11#include <iser/ISerializable.h>
12#include <iser/IObject.h>
14
15
16namespace icomp
17{
18
19
20class IComponentStaticInfo;
21
22
30 virtual public iattr::IAttributesProvider,
31 virtual public iser::ISerializable
32{
33public:
35
44
46 {
54 EF_IS_DETACHED = 0x0002
55 };
56
66
71 virtual quint32 GetElementFlags() const = 0;
76 virtual void SetElementFlags(quint32 flags) = 0;
77
83 virtual AttributeInfo* InsertAttributeInfo(const QByteArray& attributeId, const QByteArray& attributeType) = 0;
84
88 virtual iser::IObject* CreateAttribute(const QByteArray& attributeType) const = 0;
89
93 virtual const AttributeInfo* GetAttributeInfo(const QByteArray& attributeId) const = 0;
94
98 virtual bool RemoveAttribute(const QByteArray& attributeId) = 0;
99};
100
101
102} // namespace icomp
103
104
Common interface for a container of properties.
Represents element of registry describing component parameters.
virtual AttributeInfo * InsertAttributeInfo(const QByteArray &attributeId, const QByteArray &attributeType)=0
Insert new attribute info object to collection of attributes.
@ CF_ATTRIBUTE_CHANGED
Indicate that data model is changed.
virtual const AttributeInfo * GetAttributeInfo(const QByteArray &attributeId) const =0
Get access to stored attribute info structure.
virtual bool RemoveAttribute(const QByteArray &attributeId)=0
Removes attribute info structure from this collection.
istd::TDelPtr< iser::IObject > AttributePtr
virtual quint32 GetElementFlags() const =0
Get flags of this registry element.
@ EF_AUTO_INSTANCE
Indicate that instance of this element should be automatically created.
@ EF_IS_DETACHED
Indicate that this element is detached from container and can be used as factory.
virtual iser::IObject * CreateAttribute(const QByteArray &attributeType) const =0
Create attribute object for specified ID.
virtual void SetElementFlags(quint32 flags)=0
Set flags of this registry element.
Common interface for factorisable model objects.
Definition IObject.h:23
Common class for all classes which objects can be archived or restored from archive.
Pointer wrapper providing automatic deleting pointed object during destruction.
Definition TDelPtr.h:21
Package with interfaces and class used for components concept.
Describe information stored with each attribute.