ImagingTools Core SDK
CServerVariable.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
13namespace imtoas
14{
15
16
17class CServerVariable
18{
19public:
20 [[nodiscard]] QString GetId() const;
21 void SetId(const QString& id);
22
23 [[nodiscard]] QList<QString> GetEnumValues() const;
24 void SetEnumValues(const QList<QString>& enums);
25
26 [[nodiscard]] QString GetDefaultValue() const;
27 void SetDefault(const QString& defaultValue);
28
29 [[nodiscard]] QString GetDescription() const;
30 void SetDescription(const QString& description);
31
32 [[nodiscard]] static bool ReadFromJsonObject(CServerVariable& object, const QJsonObject& jsonObject, const QJsonObject& globalObject);
33
34 bool operator==(const CServerVariable& other) const;
35 bool operator!=(const CServerVariable& other) const { return !(operator==(other)); }
36
37private:
38 QString m_id;
39 QList<QString> m_enumValues;
40 QString m_default;
41 QString m_description;
42};
43
44
45} // namespace imtoas
46
47
48Q_DECLARE_METATYPE(imtoas::CServerVariable);
49
50