ImagingTools Core SDK
CHeader.h
1// SPDX-License-Identifier: LGPL-2.1-or-later OR GPL-2.0-or-later OR GPL-3.0-or-later OR LicenseRef-ImtCore-Commercial
2#pragma once
3
4
5// Qt includes
6#include <QtCore/QJsonObject>
7#include <QtCore/QJsonArray>
8#include <QtCore/QJsonValue>
9#include <QtCore/QString>
10
11// ImtCore includes
12#include <imtoas/CSchema.h>
13
14
15namespace imtoas
16{
17
18
19class CHeader
20{
21public:
22 [[nodiscard]] QString GetId() const;
23 void SetId(const QString& id);
24
25 [[nodiscard]] CSchema GetSchema() const;
26 void SetSchema(const CSchema& schema);
27
28 [[nodiscard]] QString GetDescription() const;
29 void SetDescription(const QString& description);
30
31 static bool ReadFromJsonObject(CHeader& object, const QJsonObject& jsonObject, const QJsonObject& globalObject);
32
33 bool operator==(const CHeader& other) const;
34 bool operator!=(const CHeader& other) const { return !(operator==(other)); }
35
36
37private:
38 QString m_id;
39 CSchema m_schema;
40 QString m_description;
41};
42
43
44} // namespace imtoas
45
46
47Q_DECLARE_METATYPE(imtoas::CHeader);
48
49