ACF $AcfVersion:0$
CComponentAddress.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
8// ACF includes
10
11
12namespace icomp
13{
14
15
23{
24public:
26 CComponentAddress(const QByteArray& packageId, const QByteArray& componentId);
27
31 bool IsValid() const;
32
33 const QByteArray& GetPackageId() const;
34 void SetPackageId(const QByteArray& id);
35
36 const QByteArray& GetComponentId() const;
37 void SetComponentId(const QByteArray& id);
38
39 QString ToString() const;
40 bool FromString(const QString& address);
41
42 bool operator==(const CComponentAddress& address) const;
43 bool operator!=(const CComponentAddress& address) const;
44 bool operator<(const CComponentAddress& address) const;
45
46 // reimplemented (iser::ISerializable)
47 virtual bool Serialize(iser::IArchive& archive) override;
48
49 friend uint qHash(const CComponentAddress& address, uint seed);
50
51private:
52 QByteArray m_packageId;
53 QByteArray m_componentId;
54};
55
56
57// inline methods
58
59inline const QByteArray& CComponentAddress::GetPackageId() const
60{
61 return m_packageId;
62}
63
64
65inline void CComponentAddress::SetPackageId(const QByteArray& id)
66{
67 m_packageId = id;
68}
69
70
71inline const QByteArray& CComponentAddress::GetComponentId() const
72{
73 return m_componentId;
74}
75
76
77inline void CComponentAddress::SetComponentId(const QByteArray& id)
78{
79 m_componentId = id;
80}
81
82
83inline bool CComponentAddress::operator==(const CComponentAddress& address) const
84{
85 return ((m_packageId == address.m_packageId) && (m_componentId == address.m_componentId));
86}
87
88
89inline bool CComponentAddress::operator!=(const CComponentAddress& address) const
90{
91 return ((m_packageId != address.m_packageId) || (m_componentId != address.m_componentId));
92}
93
94
95inline bool CComponentAddress::operator<(const CComponentAddress& address) const
96{
97 if (m_packageId == address.m_packageId){
98 return m_componentId < address.m_componentId;
99 }
100
101 return m_packageId < address.m_packageId;
102}
103
104
105// related global functions
106
107inline uint qHash(const CComponentAddress& address, uint seed = 0)
108{
109 Q_UNUSED(seed);
110
111 return uint(qHash(address.m_packageId) + qHash(address.m_packageId));
112}
113
114
115} // namespace icomp
116
117
118
119
Represents global address of component.
bool FromString(const QString &address)
bool operator==(const CComponentAddress &address) const
bool IsValid() const
Check if this address is valid.
const QByteArray & GetComponentId() const
virtual bool Serialize(iser::IArchive &archive) override
Load or store state of this object as a archive stream.
QString ToString() const
void SetComponentId(const QByteArray &id)
const QByteArray & GetPackageId() const
bool operator!=(const CComponentAddress &address) const
bool operator<(const CComponentAddress &address) const
CComponentAddress(const QByteArray &packageId, const QByteArray &componentId)
void SetPackageId(const QByteArray &id)
friend uint qHash(const CComponentAddress &address, uint seed)
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.
Package with interfaces and class used for components concept.
uint qHash(const CComponentAddress &address, uint seed=0)