18 return providerName +
"_provider"_L1;
27 stream <<
"TraceLoggingValue(" <<
name <<
"[" <<
i <<
"], \"" <<
name <<
"[" <<
i <<
"]\")";
36 stream <<
"TraceLoggingCountedWideString(reinterpret_cast<LPCWSTR>("
37 <<
name <<
".utf16()), static_cast<ULONG>(" <<
name <<
".size()), \""
41 stream <<
"TraceLoggingBinary(" <<
name <<
".constData(), "
42 <<
name <<
".size(), \"" <<
name <<
"\")";
45 stream <<
"TraceLoggingValue(" <<
name <<
".toEncoded().constData(), \"" <<
name <<
"\")";
49 stream <<
"TraceLoggingValue(" <<
name <<
".x(), \"x\"), "
50 <<
"TraceLoggingValue(" <<
name <<
".y(), \"y\"), "
51 <<
"TraceLoggingValue(" <<
name <<
".width(), \"width\"), "
52 <<
"TraceLoggingValue(" <<
name <<
".height(), \"height\")";
56 stream <<
"TraceLoggingValue(" <<
name <<
".width(), \"width\"), "
57 <<
"TraceLoggingValue(" <<
name <<
".height(), \"height\")";
60 stream <<
"TraceLoggingPointer(" <<
name <<
", \"" <<
name <<
"\")";
66 stream <<
"TraceLoggingCountedWideString(reinterpret_cast<LPCWSTR>(" <<
name
67 <<
"Str.utf16()), static_cast<ULONG>(" <<
name <<
"Str.size()), \"" <<
name <<
"\")";
89 <<
"0x" << uuid.
data1 <<
", "
90 <<
"0x" << uuid.
data2 <<
", "
91 <<
"0x" << uuid.
data3 <<
", "
92 <<
"0x" << uuid.
data4[0] <<
", "
93 <<
"0x" << uuid.
data4[1] <<
", "
94 <<
"0x" << uuid.
data4[2] <<
", "
95 <<
"0x" << uuid.
data4[3] <<
", "
96 <<
"0x" << uuid.
data4[4] <<
", "
97 <<
"0x" << uuid.
data4[5] <<
", "
98 <<
"0x" << uuid.
data4[6] <<
", "
99 <<
"0x" << uuid.
data4[7]
115 stream <<
"#ifndef " << guard <<
"\n"
116 <<
"#define " << guard <<
"\n"
118 <<
"#include <qt_windows.h>\n"
119 <<
"#include <TraceLoggingProvider.h>\n"
125 stream <<
"#undef _TlgPragmaUtf8Begin\n"
126 "#undef _TlgPragmaUtf8End\n"
127 "#define _TlgPragmaUtf8Begin\n"
128 "#define _TlgPragmaUtf8End\n";
137 stream <<
"#ifdef TRACEPOINT_DEFINE\n"
138 <<
"/* " << guidString <<
" */\n"
139 <<
"TRACELOGGING_DEFINE_PROVIDER(" << providerV <<
", \""
140 << provider.
name <<
"\", " << guid <<
");\n\n";
142 stream <<
"static inline void registerProvider()\n"
144 <<
" TraceLoggingRegister(" << providerV <<
");\n"
147 stream <<
"static inline void unregisterProvider()\n"
149 <<
" TraceLoggingUnregister(" << providerV <<
");\n"
152 stream <<
"Q_CONSTRUCTOR_FUNCTION(registerProvider)\n"
153 <<
"Q_DESTRUCTOR_FUNCTION(unregisterProvider)\n\n";
156 <<
"TRACELOGGING_DECLARE_PROVIDER(" << providerV <<
");\n"
157 <<
"#endif // TRACEPOINT_DEFINE\n\n";
163 <<
"#include <private/qtrace_p.h>\n";
177 stream <<
"inline void trace_" <<
name <<
"(" << argList <<
")\n"
184 stream <<
" const QString " << field.name <<
"Str = QDebug::toString(" << field.name
188 stream <<
" TraceLoggingWrite(" << provar <<
", \"" <<
name <<
"\"";
199 stream <<
"inline void do_trace_" <<
name <<
"(" << argList <<
")\n"
201 <<
" trace_" <<
name <<
"(" << paramList <<
");\n"
204 stream <<
"inline bool trace_" <<
name <<
"_enabled()\n"
206 <<
" return TraceLoggingProviderEnabled(" << provar <<
", 0, 0);\n"
214 for (
const auto &
v : enumeration.
values) {
216 stream <<
" if (val >= " <<
v.value <<
" && val <= " <<
v.range <<
")\n"
217 <<
" return QStringLiteral(\"" <<
v.name <<
" + \") + QString::number((int)val - " <<
v.value <<
");\n";
220 stream <<
"\n QString ret;\n switch (val) {\n";
223 for (
const auto &
v : enumeration.
values) {
224 if (
v.range == 0 && !handledValues.
contains(
v.value)) {
225 stream <<
" case " <<
v.
value <<
": ret = QStringLiteral(\""
231 stream <<
" }\n return ret;\n}\n";
237 stream <<
"{\n QString ret;\n";
238 for (
const auto &
v : flag.
values) {
240 stream <<
" if (val == 0)\n return QStringLiteral(\""
246 for (
const auto &
v : flag.
values) {
247 if (
v.value != 0 && !handledValues.
contains(
v.value)) {
248 stream <<
" if (val & " << (1 << (
v.value - 1))
249 <<
") { if (ret.length()) ret += QLatin1Char(\'|\'); ret += QStringLiteral(\"" <<
v.name <<
"\"); }\n";
253 stream <<
" return ret;\n}\n";
265 <<
"QT_BEGIN_NAMESPACE\n"
266 <<
"namespace QtPrivate {\n";
271 for (
const auto &flag : provider.
flags)
277 stream <<
"} // namespace QtPrivate\n"
278 <<
"QT_END_NAMESPACE\n"
\inmodule QtCore \reentrant
QString fileName() const
Returns the name of the file, excluding the path.
QString fileName() const override
Returns the name set by setFileName() or to the QFile constructors.
bool isEmpty() const noexcept
T value(qsizetype i) const
void append(parameter_type t)
\macro QT_RESTRICTED_CAST_FROM_ASCII
QByteArray toLocal8Bit() const &
QString toString(StringFormat mode=WithBraces) const
static QUuid createUuidV5(const QUuid &ns, const QByteArray &baseData)
static QString providerVar(const QString &providerName)
static void writeEpilogue(QTextStream &stream, const QString &fileName)
void writeEtw(QFile &file, const Provider &provider)
static void writeEnumConverter(QTextStream &stream, const TraceEnum &enumeration)
static void writeFlagConverter(QTextStream &stream, const TraceFlags &flag)
static void writeEtwMacro(QTextStream &stream, const Tracepoint::Field &field)
static void writeWrapper(QTextStream &stream, const Provider &provider, const Tracepoint &tracepoint, const QString &providerName)
static QString createGuid(const QUuid &uuid)
static void writePrologue(QTextStream &stream, const QString &fileName, const Provider &provider)
static void writeTracepoints(QTextStream &stream, const Provider &provider)
void writeCommonPrologue(QTextStream &stream)
QString typeToTypeName(const QString &name)
QString includeGuard(const QString &filename)
QString formatFunctionSignature(const QList< Tracepoint::Argument > &args)
QString formatParameterList(const Provider &provider, const QList< Tracepoint::Argument > &args, const QList< Tracepoint::Field > &fields, ParamType type)
static QString aggregateListValues(int value, const QList< T > &list)
QTextStream & hex(QTextStream &stream)
Calls QTextStream::setIntegerBase(16) on stream and returns stream.
#define tracepoint(provider, name,...)
GLsizei const GLfloat * v
[13]
#define QStringLiteral(str)
QList< TraceEnum > enumerations
QList< TraceFlags > flags
QList< Tracepoint > tracepoints
bool contains(const AT &t) const noexcept
QList< EnumValue > values
QList< FlagValue > values