ImagingTools Core SDK
imtsdl.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// Qt includes
5#include <QtCore/QList>
6
7
8namespace imtsdl
9{
10
11
12enum KeyId
13{
14 KI_QUERY,
15 KI_MUTATION,
16 KI_SUBSCRIPTION,
17};
18
19
20struct SdlCustomSchemaKeys
21{
22 static const inline QString SchemaName = QStringLiteral("name");
23 static const inline QString SchemaNamespace = QStringLiteral("namespace");
24 static const inline QString VersionName = QStringLiteral("version");
25 static const inline QString EnumConversionType = QStringLiteral("enumConversion");
26};
27
28
29struct EnumConversionTypes
30{
31 static const inline QString AsIs = QStringLiteral("asIs");
32 static const inline QString UpperCamel = QStringLiteral("upperCamel");
33 static const inline QString LowerCamel = QStringLiteral("lowerCamel");
34 static const inline QString UpperSnake = QStringLiteral("upperSnake");
35 static const inline QString LowerSnake = QStringLiteral("lowerSnake");
36 static const inline QString UpperKebab = QStringLiteral("upperKebab");
37 static const inline QString LowerKebab = QStringLiteral("lowerKebab");
38};
39
40
43{
50 static const inline QByteArray TempDirPath = QByteArrayLiteral("TempDirPath");
51};
52
53
54enum Priority
55{
56 P_C = 0,
57 P_OS_API,
58 P_QT,
59 P_ACF,
60 P_IMT,
61 P_CUSTOM
62};
63
64
65enum Type
66{
67 T_HEADER,
68 T_SOURCE
69};
70
71
72struct IncludeDirective
73{
74 Priority priority = P_C;
75 QString remark;
76 QString path;
77 Type type = T_HEADER;
78
79 bool operator == (const IncludeDirective& other) const
80 {
81 return
82 priority == other.priority &&
83 remark == other.remark &&
84 path == other.path &&
85 type == other.type;
86 }
87};
88
89
94{
95 // prefix properties
97 static const inline QByteArray PrefixName = QByteArrayLiteral("Name");
98
100 static const inline QByteArray QrcObjects = QByteArrayLiteral("Objects");
101
102 // QRC-object properties
104 static const inline QByteArray QrcAlias = QByteArrayLiteral("Alias");
105
107 static const inline QByteArray QrcFileName = QByteArrayLiteral("FileName");
108};
109
110
111
112} // namespace imtsdl
113
114
115
117template<>
118struct std::hash<imtsdl::IncludeDirective>
119{
120 size_t operator()(const imtsdl::IncludeDirective& s, size_t seed = 0) const
121 {
122 return qHashMulti(seed, s.priority, s.remark, s.path, s.type);
123 }
124};
this struct describes keys of params for SDL processors
Definition imtsdl.h:43
static const QByteArray TempDirPath
the path to the temporary directory where the processors MUST be work
Definition imtsdl.h:50
The QtResourceModelParamIds struct defines param IDs of a QT resource's (QRC) model.
Definition imtsdl.h:94
static const QByteArray PrefixName
defines an ID of the "prefix name" parameter, represented as iprm::INameParam
Definition imtsdl.h:97
static const QByteArray QrcObjects
defines an ID of the "Objects" parameter, represented as ilst of parameters i.e. iprm::IParamsManager...
Definition imtsdl.h:100
static const QByteArray QrcAlias
defines an ID of the "QRC object alias" parameter, represented as iprm::INameParam
Definition imtsdl.h:104
static const QByteArray QrcFileName
defines an ID of the "QRC object name" parameter - is a relative file path, represented as iprm::INam...
Definition imtsdl.h:107