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
tracegen.cpp
Go to the documentation of this file.
1// Copyright (C) 2017 Klarälvdalens Datakonsult AB, a KDAB Group company, info@kdab.com, author Rafael Roquetto <rafael.roquetto@kdab.com>
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
3
4#include "provider.h"
5#include "ctf.h"
6#include "lttng.h"
7#include "etw.h"
8#include "panic.h"
9
10#include <qstring.h>
11#include <qfile.h>
12
13enum class Target
14{
15 LTTNG,
16 ETW,
17 CTF,
18};
19
20static inline void usage(int status)
21{
22 printf("Usage: tracegen <lttng|etw|ctf> <input file> <output file>\n");
23 exit(status);
24}
25
26static void parseArgs(int argc, char *argv[], Target *target, QString *inFile, QString *outFile)
27{
28 if (argc == 1)
29 usage(EXIT_SUCCESS);
30 if (argc != 4)
31 usage(EXIT_FAILURE);
32
33 const char *targetString = argv[1];
34
35 if (qstrcmp(targetString, "lttng") == 0) {
37 } else if (qstrcmp(targetString, "etw") == 0) {
39 } else if (qstrcmp(targetString, "ctf") == 0) {
41 } else {
42 fprintf(stderr, "Invalid target: %s\n", targetString);
43 usage(EXIT_FAILURE);
44 }
45
46 *inFile = QLatin1StringView(argv[2]);
47 *outFile = QLatin1StringView(argv[3]);
48}
49
50int main(int argc, char *argv[])
51{
53 QString inFile;
54 QString outFile;
55
56 parseArgs(argc, argv, &target, &inFile, &outFile);
57
58 Provider p = parseProvider(inFile);
59
60 QFile out(outFile);
61
63 panic("Cannot open '%s' for writing: %s",
64 qPrintable(outFile), qPrintable(out.errorString()));
65 }
66
67 switch (target) {
68 case Target::CTF:
69 writeCtf(out, p);
70 break;
71 case Target::LTTNG:
73 break;
74 case Target::ETW:
75 writeEtw(out, p);
76 break;
77 }
78
79 return 0;
80}
\inmodule QtCore
Definition qfile.h:93
\macro QT_RESTRICTED_CAST_FROM_ASCII
Definition qstring.h:129
void writeCtf(QFile &file, const Provider &provider)
Definition ctf.cpp:292
int main()
[0]
void writeEtw(QFile &file, const Provider &provider)
Definition etw.cpp:282
void writeLttng(QFile &file, const Provider &provider)
Definition lttng.cpp:288
void panic(const char *fmt,...)
Definition panic.cpp:10
Provider parseProvider(const QString &filename)
Definition provider.cpp:292
Q_CORE_EXPORT int qstrcmp(const char *str1, const char *str2)
GLenum target
GLfloat GLfloat p
[1]
GLsizeiptr const void GLenum usage
Definition qopenglext.h:543
#define qPrintable(string)
Definition qstring.h:1531
QTextStream out(stdout)
[7]
Target
Definition tracegen.cpp:14
static void parseArgs(int argc, char *argv[], Target *target, QString *inFile, QString *outFile)
Definition tracegen.cpp:26