19#include <qtcoreexports.h>
30 : provider(provider), metadata(
nullptr)
59 : provider(provider), eventName(
name), metadata(metadata),
size(
size), variableSize(variableSize)
72#include <QtCore/qbytearray.h>
73#include <QtCore/qstring.h>
74#include <QtCore/qurl.h>
103template <
typename T,
typename... Ts>
115template <
typename... Ts>
131template <
typename IntegerType,
typename T>
134 IntegerType e =
static_cast<IntegerType
>(
value);
182#define _DEFINE_EVENT(provider, event, metadata, size, varSize) \
183 static QCtfTracePointEvent _ctf_ ## event = QCtfTracePointEvent(_ctf_provider_ ## provider, QStringLiteral(QT_STRINGIFY(event)), metadata, size, varSize);
184#define _DEFINE_METADATA(provider, name, metadata) \
185 static QCtfTraceMetadata _ctf_metadata_ ## name = QCtfTraceMetadata(_ctf_provider_ ## provider, QStringLiteral(QT_STRINGIFY(name)), metadata);
186#define _DEFINE_TRACEPOINT_PROVIDER(provider) \
187 static QCtfTracePointProvider _ctf_provider_ ## provider = QCtfTracePointProvider(QStringLiteral(QT_STRINGIFY(provider)));
189#define TRACEPOINT_EVENT(provider, event, metadata, size, varSize) \
190 _DEFINE_EVENT(provider, event, metadata, size, varSize)
192#define TRACEPOINT_PROVIDER(provider) \
193 _DEFINE_TRACEPOINT_PROVIDER(provider)
195#define TRACEPOINT_METADATA(provider, name, metadata) \
196 _DEFINE_METADATA(provider, name, metadata)
198#define tracepoint_enabled(provider, event) \
199 _tracepoint_enabled(_ctf_ ## event)
201#define do_tracepoint(provider, event, ...) \
203 auto &tp = _ctf_ ## event; \
205 tp.d = _initialize_tracepoint(tp); \
207 QByteArray data(tp.size, 0); \
208 if (!tp.metadata.isEmpty()) \
209 data = trace::toByteArray(__VA_ARGS__); \
210 _do_tracepoint(tp, data); \
214#define tracepoint(provider, name, ...) \
216 if (tracepoint_enabled(provider, name)) \
217 do_tracepoint(provider, name, __VA_ARGS__); \
char * data()
\macro QT_NO_CAST_FROM_BYTEARRAY
QByteArray & append(char c)
This is an overloaded member function, provided for convenience. It differs from the above function o...
QCtfLib(QObject *parent=nullptr)
virtual void shutdown(bool *shutdown)=0
virtual bool sessionEnabled()=0
virtual void doTracepoint(const QCtfTracePointEvent &point, const QByteArray &arr)=0
virtual ~QCtfLib()=default
virtual QCtfTracePointPrivate * initializeTracepoint(const QCtfTracePointEvent &point)=0
virtual bool tracepointEnabled(const QCtfTracePointEvent &point)=0
\macro QT_RESTRICTED_CAST_FROM_ASCII
Combined button and popup list for selecting options.
QByteArray toByteArrayFromArray(const T *values, int arraySize)
QByteArray toByteArrayFromEnum(T value)
static void appendFlags(QByteArray &data, quint8 &count, quint32 value)
QByteArray toByteArrayFromCString(const char *str)
QByteArray toByteArrayFromFlags(QFlags< T > value)
Q_CORE_EXPORT void _do_tracepoint(const QCtfTracePointEvent &point, const QByteArray &arr)
Q_CORE_EXPORT QCtfTracePointPrivate * _initialize_tracepoint(const QCtfTracePointEvent &point)
Q_CORE_EXPORT bool _tracepoint_enabled(const QCtfTracePointEvent &point)
EGLOutputLayerEXT EGLint EGLAttrib value
[5]
GLenum GLsizei GLsizei GLint * values
[15]
GLenum GLuint GLintptr GLsizeiptr size
[1]
GLenum GLenum GLsizei count
GLint GLsizei GLsizei GLenum GLenum GLsizei void * data
const QCtfTracePointProvider & provider
QCtfTracePointEvent(const QCtfTracePointProvider &provider, const QString &name, const QString &metadata, int size, bool variableSize)
QCtfTraceMetadata * metadata
QCtfTracePointProvider(const QString &provider)