ImagingTools Core SDK
CResponse.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/CMediaType.h>
14#include <imtoas/CHeader.h>
15
16
17namespace imtoas
18{
19
20
21class CResponse
22{
23public:
24 [[nodiscard]] QString GetId() const;
25 void SetId(const QString& id);
26
27 [[nodiscard]] QString GetDescription() const;
28 void SetDescription(const QString& description);
29
30 [[nodiscard]] QList<CHeader> GetHeaders() const;
31 void SetHeaders(const QList<CHeader>& headers);
32
33 [[nodiscard]] QList<CMediaType> GetContentList() const;
34 void SetContentList(const QList<CMediaType>& contentList);
35
36 [[nodiscard]] static bool ReadFromJsonObject(CResponse& object, const QJsonObject& jsonObject, const QJsonObject& globalObject);
37
38 bool operator==(const CResponse& other) const;
39 bool operator!=(const CResponse& other) const { return !(operator==(other)); }
40
41
42private:
43 QString m_id;
44 QString m_description;
45 QList<CHeader> m_headers;
46 QList<CMediaType> m_contentList;
47};
48
49
50} // namespace imtoas
51
52
53Q_DECLARE_METATYPE(imtoas::CResponse);
54
55