ImagingTools Core SDK
CEncoding.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#include <QtCore/QList>
11
12// ImtCore includes
13#include <imtoas/CHeader.h>
14
15
16namespace imtoas
17{
18
19
20class CEncoding
21{
22public:
23 CEncoding();
24
25 [[nodiscard]] QString GetId() const;
26 void SetId(const QString& id);
27
28 [[nodiscard]] QString GetContentType() const;
29 void SetContentType(const QString& contentType);
30
31 [[nodiscard]] QList<CHeader> GetHeaders() const;
32 void SetHeaders(const QList<CHeader>& headers);
33
34 [[nodiscard]] QString GetStyle() const;
35 void SetStyle(const QString& style);
36
37 [[nodiscard]] bool IsExplode() const;
38 void SetExplode(bool explode = true);
39
40 [[nodiscard]] bool IsAllowReserved() const;
41 void SetAllowReserved(bool allowReserved = true);
42
43 static bool ReadFromJsonObject(CEncoding& object, const QJsonObject& jsonObject, const QJsonObject& globalObject);
44
45 bool operator==(const CEncoding& other) const;
46 bool operator!=(const CEncoding& other) const { return !(operator==(other)); }
47
48private:
49 QString m_id;
50 QString m_contentType;
51 QList<CHeader> m_headers;
52 QString m_style;
53 bool m_isExplode;
54 bool m_allowReserved;
55};
56
57
58} // namespace imtoas
59
60
61Q_DECLARE_METATYPE(imtoas::CEncoding);
62
63