Go to the documentation of this file.
7using namespace Qt::StringLiterals;
13#error "Q_TRACEPOINT not set for the module, Q_TRACE not enabled."
26 QString guard = filename.toUpper();
28 for (
int i = 0; i < guard.size(); ++i) {
29 if (!guard.at(i).isLetterOrNumber())
37static QString joinArguments(
const QList<Tracepoint::Argument> &args, T joinFunction)
42 for (
const Tracepoint::Argument &arg : args) {
46 ret += joinFunction(arg);
56 return joinArguments(args, [](
const Tracepoint::Argument &arg) {
66 for (
int i = 0; i < args.size(); i++) {
67 const Tracepoint::Argument &arg = args[i];
68 const Tracepoint::Field &field = fields[i];
69 if (field.backendType == Tracepoint::Field::FlagType)
70 ret +=
", trace_convert_"_L1 + typeToTypeName(arg.type) +
"("_L1 + arg.name +
")"_L1;
72 ret +=
", "_L1 + arg.name;
77 auto findEnumeration = [](
const QList<
TraceEnum> &enums,
const QString &name) {
78 for (
const auto &e : enums) {
88 for (
int i = 0; i < args.size(); i++) {
89 const Tracepoint::Argument &arg = args[i];
90 const Tracepoint::Field &field = fields[i];
91 if (arg.arrayLen > 1) {
92 ret +=
", trace::toByteArrayFromArray("_L1 + arg.name +
", "_L1 + QString::number(arg.arrayLen) +
") "_L1;
93 }
else if (field.backendType == Tracepoint::Field::EnumeratedType) {
94 const TraceEnum &e = findEnumeration(provider.enumerations, arg.type);
98 else if (e.valueSize == 16)
102 ret +=
", trace::toByteArrayFromEnum<"_L1 + integerType +
">("_L1 + arg.name +
")"_L1;
103 }
else if (field.backendType == Tracepoint::Field::FlagType) {
104 ret +=
", trace::toByteArrayFromFlags("_L1 + arg.name +
")"_L1;
105 }
else if (field.backendType == Tracepoint::Field::String) {
106 ret +=
", trace::toByteArrayFromCString("_L1 + arg.name +
")"_L1;
108 ret +=
", "_L1 + arg.name;
114 return joinArguments(args, [](
const Tracepoint::Argument &arg) {
return arg.name; });
void writeCommonPrologue(QTextStream &stream)
QString typeToTypeName(const QString &type)
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)
#define QStringLiteral(str)