4#ifndef METATYPESJSONPROCESSOR_P_H
5#define METATYPESJSONPROCESSOR_P_H
18#include <private/qduplicatetracker_p.h>
20#include <QtCore/qcbormap.h>
21#include <QtCore/qstring.h>
22#include <QtCore/qtyperevision.h>
23#include <QtCore/qvarlengtharray.h>
24#include <QtCore/qvector.h>
33enum class Access { Public, Protected, Private };
113 Method(
const QCborMap &cbor,
bool isConstructor);
138 Enum(
const QCborMap &cbor);
187 MetaType(
const QCborMap &cbor,
const QString &inputFile);
189 bool isEmpty()
const {
return d == &s_empty; }
227 bool isValid()
const {
return !alias.isEmpty() && !original.isEmpty(); }
231 return std::tie(a.alias, a.original) == std::tie(b.alias, b.original);
237 return a.alias != b.alias
238 ? compareThreeWay(a.alias, b.alias)
239 : compareThreeWay(a.original, b.original);
268 enum RegistrationMode {
272 NamespaceRegistration
275 struct PreProcessResult {
276 QList<QAnyStringView> primitiveAliases;
278 QAnyStringView foreignPrimitive;
279 RegistrationMode mode;
282 enum class PopulateMode { No, Yes };
283 static PreProcessResult preProcess(
const MetaType &classDef, PopulateMode populateMode);
284 void addRelatedTypes();
286 void sortTypes(QVector<MetaType> &types);
287 QString resolvedInclude(QAnyStringView include);
291 bool isPrimitive(QAnyStringView type)
const
293 return std::binary_search(m_primitiveTypes.begin(), m_primitiveTypes.end(), type);
296 QList<QString> m_includes;
297 QList<QAnyStringView> m_referencedTypes;
298 QList<QAnyStringView> m_primitiveTypes;
299 QList<UsingDeclaration> m_usingDeclarations;
300 QVector<MetaType> m_types;
301 QVector<MetaType> m_foreignTypes;
302 QDuplicateTracker<QString> m_seenMetaTypesFiles;
303 bool m_privateIncludes =
false;
QDebug warning(const MetaType &classDef)
Argument(const QCborMap &cbor)
BaseType(const QCborMap &cbor)
ClassInfo(const QCborMap &cbor)
QList< QAnyStringView > values
Enum(const QCborMap &cbor)
Interface(const QCborValue &cbor)
QAnyStringView returnType
Argument::Container arguments
bool isJavaScriptFunction
Method(const QCborMap &cbor, bool isConstructor)
static constexpr int InvalidIndex
QAnyStringView privateClass
Property(const QCborMap &cbor)
friend bool comparesEqual(const UsingDeclaration &a, const UsingDeclaration &b) noexcept
friend Qt::strong_ordering compareThreeWay(const UsingDeclaration &a, const UsingDeclaration &b) noexcept