ICF 3.0.5.47
Technical documentation of ICF Libraries
CCompositePackageStaticInfo.h
Go to the documentation of this file.
1/********************************************************************************
2** This file is part of the ICF Framework. Copyright (C) Witold Gantzke & Kirill Lepskiy
3** ICF Framework may be used under the terms of the LGPL License v. 2.1 by the Free Software Foundation.
4********************************************************************************/
5
6#pragma once
7
8
9// Qt includes
10#include <QtCore/QMap>
11
12// ICF includes
15
16
17namespace iser
18{
19 class IArchive;
20};
21
22
23namespace icomp
24{
25
26
27class IComponentEnvironmentManager;
28
29
34{
35public:
37
39 const QByteArray& packageId,
40 const IComponentEnvironmentManager* managerPtr);
41
42 void RegisterEmbeddedComponent(const QByteArray& componentId);
43
44 virtual bool SerializeMeta(iser::IArchive& archive);
45
46 // reimplemented (icomp::IComponentStaticInfo)
47 Ids GetMetaIds(MetaGroupId metaGroupId) const override;
48 const IComponentStaticInfo* GetEmbeddedComponentInfo(const QByteArray& embeddedId) const override;
49
50 // reimplemented (icomp::IComponentStaticInfo)
51 const QString& GetDescription() const override;
52 const QString& GetKeywords() const override;
53
54private:
55 struct ComponentInfo
56 {
57 std::unique_ptr<CCompositeComponentStaticInfo> componentInfoPtr;
58 bool isInitialized = false;
59 };
60
61 typedef std::map<QByteArray, ComponentInfo> EmbeddedComponentInfos;
62 mutable EmbeddedComponentInfos m_embeddedComponentInfos;
63
64 QByteArray m_packageId;
65 const IComponentEnvironmentManager& m_envManager;
66
67 QString m_description;
68 QString m_keywords;
69};
70
71
72} // namespace icomp
73
74
Implementation of package static info designing to provide composite component information 'on demand...
virtual bool SerializeMeta(iser::IArchive &archive)
const IComponentStaticInfo * GetEmbeddedComponentInfo(const QByteArray &embeddedId) const override
Return number of interfaces for specific slot.
const QString & GetKeywords() const override
Get keywords for this component.
CCompositePackageStaticInfo(const QByteArray &packageId, const IComponentEnvironmentManager *managerPtr)
const QString & GetDescription() const override
Get human readable description of this component.
Ids GetMetaIds(MetaGroupId metaGroupId) const override
Get list of meta IDs associated with some meta key.
void RegisterEmbeddedComponent(const QByteArray &componentId)
This interface provide static information about component meta info.
Represent input/output persistence archive.
Definition IArchive.h:33
Package with interfaces and class used for components concept.
Contains general persistence mechanism with basic archives implementations.

© Witold Gantzke and Kirill Lepskiy