Qt
Internal/Contributor docs for the Qt SDK. <b>Note:</b> These are NOT official API docs; those are found <a href='https://doc.qt.io/'>here</a>.
Loading...
Searching...
No Matches
generator.h
Go to the documentation of this file.
1// Copyright (C) 2016 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
3
4#ifndef GENERATOR_H
5#define GENERATOR_H
6
7#include "moc.h"
8
10
12{
13 Moc *parser = nullptr;
14 FILE *out;
15 ClassDef *cdef;
16 QList<uint> meta_data;
17
18public:
19 Generator(Moc *moc, ClassDef *classDef, const QList<QByteArray> &metaTypes,
20 const QHash<QByteArray, QByteArray> &knownQObjectClasses,
21 const QHash<QByteArray, QByteArray> &knownGadgets, FILE *outfile = nullptr,
22 bool requireCompleteTypes = false);
23 void generateCode();
25
26private:
27 bool registerableMetaType(const QByteArray &propertyType);
28 void registerClassInfoStrings();
29 void generateClassInfos();
30 void registerFunctionStrings(const QList<FunctionDef> &list);
31 void registerByteArrayVector(const QList<QByteArray> &list);
32 void generateFunctions(const QList<FunctionDef> &list, const char *functype, int type,
33 int &paramsIndex, int &initialMetatypeOffset);
34 void generateFunctionRevisions(const QList<FunctionDef> &list, const char *functype);
35 void generateFunctionParameters(const QList<FunctionDef> &list, const char *functype);
36 void generateTypeInfo(const QByteArray &typeName, bool allowEmptyName = false);
37 void registerEnumStrings();
38 void generateEnums(int index);
39 void registerPropertyStrings();
40 void generateProperties();
41 void generateMetacall();
42 void generateStaticMetacall();
43 void generateSignal(const FunctionDef *def, int index);
44 void generatePluginMetaData();
45 QMultiMap<QByteArray, int> automaticPropertyMetaTypesHelper();
46 QMap<int, QMultiMap<QByteArray, int>>
47 methodsWithAutomaticTypesHelper(const QList<FunctionDef> &methodList);
48
49 void strreg(const QByteArray &); // registers a string
50 int stridx(const QByteArray &); // returns a string's id
51 QList<QByteArray> strings;
52 QByteArray purestSuperClass;
53 QList<QByteArray> metaTypes;
54 QHash<QByteArray, QByteArray> knownQObjectClasses;
55 QHash<QByteArray, QByteArray> knownGadgets;
56 bool requireCompleteTypes;
57};
58
60
61#endif // GENERATOR_H
qsizetype registeredStringsCount()
Definition generator.h:24
Generator(Moc *moc, ClassDef *classDef, const QList< QByteArray > &metaTypes, const QHash< QByteArray, QByteArray > &knownQObjectClasses, const QHash< QByteArray, QByteArray > &knownGadgets, FILE *outfile=nullptr, bool requireCompleteTypes=false)
Definition generator.cpp:60
void generateCode()
Definition moc.h:208
\inmodule QtCore
Definition qbytearray.h:57
Combined button and popup list for selecting options.
static QString moc(const QString &name)
const char * typeName
GLuint index
[2]
GLsizei const GLchar ** strings
[1]
GLenum type
ptrdiff_t qsizetype
Definition qtypes.h:165
QList< int > list
[14]