19#include <qtcoreexports.h>
32 : provider(provider), metadata(
nullptr)
61 : provider(provider), eventName(
name), metadata(metadata),
size(
size), variableSize(variableSize)
74#include <QtCore/qbytearray.h>
75#include <QtCore/qstring.h>
76#include <QtCore/qurl.h>
105template <
typename T,
typename... Ts>
117template <
typename... Ts>
129 data.append((
char *)
values, arraySize *
sizeof(T));
133template <
typename IntegerType,
typename T>
136 IntegerType
e =
static_cast<IntegerType
>(
value);
138 data.append((
char *)&
e,
sizeof(
e));
147 data.append((
char)0);
171 data.append((
char)0);
173 data.append((
char)0);
184#define _DEFINE_EVENT(provider, event, metadata, size, varSize) \
185 static QCtfTracePointEvent _ctf_ ## event = QCtfTracePointEvent(_ctf_provider_ ## provider, QStringLiteral(QT_STRINGIFY(event)), metadata, size, varSize);
186#define _DEFINE_METADATA(provider, name, metadata) \
187 static QCtfTraceMetadata _ctf_metadata_ ## name = QCtfTraceMetadata(_ctf_provider_ ## provider, QStringLiteral(QT_STRINGIFY(name)), metadata);
188#define _DEFINE_TRACEPOINT_PROVIDER(provider) \
189 static QCtfTracePointProvider _ctf_provider_ ## provider = QCtfTracePointProvider(QStringLiteral(QT_STRINGIFY(provider)));
191#define TRACEPOINT_EVENT(provider, event, metadata, size, varSize) \
192 _DEFINE_EVENT(provider, event, metadata, size, varSize)
194#define TRACEPOINT_PROVIDER(provider) \
195 _DEFINE_TRACEPOINT_PROVIDER(provider)
197#define TRACEPOINT_METADATA(provider, name, metadata) \
198 _DEFINE_METADATA(provider, name, metadata)
200#define tracepoint_enabled(provider, event) \
201 _tracepoint_enabled(_ctf_ ## event)
203#define do_tracepoint(provider, event, ...) \
205 auto &tp = _ctf_ ## event; \
207 tp.d = _initialize_tracepoint(tp); \
209 QByteArray data(tp.size, 0); \
210 if (!tp.metadata.isEmpty()) \
211 data = trace::toByteArray(__VA_ARGS__); \
212 _do_tracepoint(tp, data); \
216#define tracepoint(provider, name, ...) \
218 if (tracepoint_enabled(provider, name)) \
219 do_tracepoint(provider, name, __VA_ARGS__); \
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
#define QT_REQUIRE_CONFIG(feature)
const QCtfTracePointProvider & provider
QCtfTracePointEvent(const QCtfTracePointProvider &provider, const QString &name, const QString &metadata, int size, bool variableSize)
QCtfTraceMetadata * metadata
QCtfTracePointProvider(const QString &provider)
IUIAutomationTreeWalker __RPC__deref_out_opt IUIAutomationElement ** parent