![]() |
Qt 6.x
The Qt SDK
|
#include <qqmlabstractprofileradapter_p.h>
Signals | |
void | profilingEnabled (quint64 features) |
void | profilingEnabledWhileWaiting (quint64 features) |
void | profilingDisabled () |
void | profilingDisabledWhileWaiting () |
void | dataRequested () |
void | referenceTimeKnown (const QElapsedTimer &timer) |
![]() | |
void | destroyed (QObject *=nullptr) |
This signal is emitted immediately before the object obj is destroyed, after any instances of QPointer have been notified, and cannot be blocked. | |
void | objectNameChanged (const QString &objectName, QPrivateSignal) |
This signal is emitted after the object's name has been changed. | |
Public Member Functions | |
QQmlAbstractProfilerAdapter (QObject *parent=nullptr) | |
~QQmlAbstractProfilerAdapter () override | |
void | setService (QQmlProfilerService *new_service) |
virtual qint64 | sendMessages (qint64 until, QList< QByteArray > &messages)=0 |
void | startProfiling (quint64 features) |
void | stopProfiling () |
void | reportData () |
void | stopWaiting () |
void | startWaiting () |
bool | isRunning () const |
quint64 | features () const |
void | synchronize (const QElapsedTimer &t) |
![]() | |
Q_INVOKABLE | QObject (QObject *parent=nullptr) |
Constructs an object with parent object parent. | |
virtual | ~QObject () |
Destroys the object, deleting all its child objects. | |
virtual bool | event (QEvent *event) |
This virtual function receives events to an object and should return true if the event e was recognized and processed. | |
virtual bool | eventFilter (QObject *watched, QEvent *event) |
Filters events if this object has been installed as an event filter for the watched object. | |
QString | objectName () const |
Q_WEAK_OVERLOAD void | setObjectName (const QString &name) |
Sets the object's name to name. | |
void | setObjectName (QAnyStringView name) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. | |
QBindable< QString > | bindableObjectName () |
bool | isWidgetType () const |
Returns true if the object is a widget; otherwise returns false . | |
bool | isWindowType () const |
Returns true if the object is a window; otherwise returns false . | |
bool | isQuickItemType () const |
Returns true if the object is a QQuickItem; otherwise returns false . | |
bool | signalsBlocked () const noexcept |
Returns true if signals are blocked; otherwise returns false . | |
bool | blockSignals (bool b) noexcept |
If block is true, signals emitted by this object are blocked (i.e., emitting a signal will not invoke anything connected to it). | |
QThread * | thread () const |
Returns the thread in which the object lives. | |
void | moveToThread (QThread *thread) |
Changes the thread affinity for this object and its children. | |
int | startTimer (int interval, Qt::TimerType timerType=Qt::CoarseTimer) |
This is an overloaded function that will start a timer of type timerType and a timeout of interval milliseconds. | |
int | startTimer (std::chrono::milliseconds time, Qt::TimerType timerType=Qt::CoarseTimer) |
void | killTimer (int id) |
Kills the timer with timer identifier, id. | |
template<typename T > | |
T | findChild (const QString &aName=QString(), Qt::FindChildOptions options=Qt::FindChildrenRecursively) const |
Returns the child of this object that can be cast into type T and that is called name, or \nullptr if there is no such object. | |
template<typename T > | |
QList< T > | findChildren (const QString &aName, Qt::FindChildOptions options=Qt::FindChildrenRecursively) const |
Returns all children of this object with the given name that can be cast to type T, or an empty list if there are no such objects. | |
template<typename T > | |
QList< T > | findChildren (Qt::FindChildOptions options=Qt::FindChildrenRecursively) const |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. | |
const QObjectList & | children () const |
Returns a list of child objects. | |
void | setParent (QObject *parent) |
Makes the object a child of parent. | |
void | installEventFilter (QObject *filterObj) |
Installs an event filter filterObj on this object. | |
void | removeEventFilter (QObject *obj) |
Removes an event filter object obj from this object. | |
QMetaObject::Connection | connect (const QObject *sender, const char *signal, const char *member, Qt::ConnectionType type=Qt::AutoConnection) const |
bool | disconnect (const char *signal=nullptr, const QObject *receiver=nullptr, const char *member=nullptr) const |
bool | disconnect (const QObject *receiver, const char *member=nullptr) const |
void | dumpObjectTree () const |
Dumps a tree of children to the debug output. | |
void | dumpObjectInfo () const |
Dumps information about signal connections, etc. | |
bool | setProperty (const char *name, const QVariant &value) |
Sets the value of the object's name property to value. | |
bool | setProperty (const char *name, QVariant &&value) |
QVariant | property (const char *name) const |
Returns the value of the object's name property. | |
QList< QByteArray > | dynamicPropertyNames () const |
QBindingStorage * | bindingStorage () |
const QBindingStorage * | bindingStorage () const |
QObject * | parent () const |
Returns a pointer to the parent object. | |
bool | inherits (const char *classname) const |
Returns true if this object is an instance of a class that inherits className or a QObject subclass that inherits className; otherwise returns false . | |
Static Public Attributes | |
static const int | s_numMessagesPerBatch = 1000 |
Protected Attributes | |
QQmlProfilerService * | service |
![]() | |
QScopedPointer< QObjectData > | d_ptr |
\inmodule QtQml Abstract base class for all adapters between profilers and the QQmlProfilerService. Adapters have to retrieve profiler-specific data and convert it to the format sent over the wire. Adapters must live in the QDebugServer thread but the actual profilers can live in different threads. The recommended way to deal with this is passing the profiling data through a signal/slot connection.
Definition at line 29 of file qqmlabstractprofileradapter_p.h.
Definition at line 35 of file qqmlabstractprofileradapter_p.h.
|
inlineoverride |
Definition at line 37 of file qqmlabstractprofileradapter_p.h.
|
signal |
Signals that data has been requested by the QQmlProfilerService
. This signal should be connected to a slot in the profiler and the profiler should then transfer its currently available profiling data to the adapter as soon as possible.
Referenced by QQuick3DProfilerAdapter::QQuick3DProfilerAdapter(), QQuickProfilerAdapter::QQuickProfilerAdapter(), and QV4ProfilerAdapter::QV4ProfilerAdapter().
|
inline |
Definition at line 52 of file qqmlabstractprofileradapter_p.h.
Referenced by startProfiling().
|
inline |
Returns if the profiler is currently running. The profiler is considered to be running after startProfiling(quint64)
has been called until stopProfiling()
is called. That is independent of waiting
. The profiler may be running and waiting at the same time.
Definition at line 51 of file qqmlabstractprofileradapter_p.h.
Referenced by QQmlProfilerServiceImpl::engineAboutToBeRemoved(), QQmlProfilerServiceImpl::startProfiling(), and QQmlProfilerServiceImpl::stopProfiling().
|
signal |
This signal is emitted if stopProfiling()
is called while the profiler is not considered to be waiting. The profiler is expected to handle the signal asynchronously.
Referenced by QQuick3DProfilerAdapter::QQuick3DProfilerAdapter(), QQuickProfilerAdapter::QQuickProfilerAdapter(), QV4ProfilerAdapter::QV4ProfilerAdapter(), and stopProfiling().
|
signal |
This signal is emitted if stopProfiling()
is called while the profiler is considered to be waiting. In many cases this signal can be connected with a Qt::DirectConnection.
Referenced by QQuick3DProfilerAdapter::QQuick3DProfilerAdapter(), QQuickProfilerAdapter::QQuickProfilerAdapter(), QV4ProfilerAdapter::QV4ProfilerAdapter(), and stopProfiling().
This signal is emitted if startProfiling(quint64)
is called while the profiler is not considered to be waiting. The profiler is expected to handle the signal asynchronously. The features are passed on from startProfiling(quint64)
.
Referenced by QQuick3DProfilerAdapter::QQuick3DProfilerAdapter(), QQuickProfilerAdapter::QQuickProfilerAdapter(), QV4ProfilerAdapter::QV4ProfilerAdapter(), and startProfiling().
This signal is emitted if startProfiling(quint64)
is called while the profiler is considered to be waiting. In many cases this signal can be connected with a Qt::DirectConnection. By starting the profiler synchronously when the QML engine starts instead of waiting for the first iteration of the event loop the engine startup can be profiled. The features are passed on from startProfiling(quint64)
.
Referenced by QQuick3DProfilerAdapter::QQuick3DProfilerAdapter(), QQuickProfilerAdapter::QQuickProfilerAdapter(), QV4ProfilerAdapter::QV4ProfilerAdapter(), and startProfiling().
|
signal |
This signal is used to synchronize the profiler's timer to the QQmlProfilerservice's. The profiler is expected to save timer and use it for timestamps on its data.
Referenced by QQuick3DProfilerAdapter::QQuick3DProfilerAdapter(), QQuickProfilerAdapter::QQuickProfilerAdapter(), and QV4ProfilerAdapter::QV4ProfilerAdapter().
|
inline |
Make the profiler report its current data without stopping the collection. The same (and additional) data can later be requested again with stopProfiling()
or reportData()
.
Definition at line 46 of file qqmlabstractprofileradapter_p.h.
References Q_EMIT.
Referenced by QQmlProfilerServiceImpl::stopProfiling().
|
pure virtual |
Append the messages up to the timestamp until, chronologically sorted, to messages. Keep track of the messages already sent and with each subsequent call to this method start with the first one not yet sent. Messages that have been sent can be deleted. When new data from the profiler arrives the information about the last sent message must be reset. Return the timestamp of the next message after until or -1
if there is no such message. The profiler service keeps a list of adapters, sorted by time of next message and keeps querying the first one to send messages up to the time of the second one. Like that we get chronologically sorted messages and can occasionally post the messages to exploit parallelism and save memory.
Implemented in QQmlProfilerAdapter, QV4ProfilerAdapter, QQuickProfilerAdapter, and QQuick3DProfilerAdapter.
|
inline |
Definition at line 38 of file qqmlabstractprofileradapter_p.h.
Referenced by QQmlProfilerServiceImpl::QQmlProfilerServiceImpl(), and QV4ProfilerAdapter::QV4ProfilerAdapter().
Emits either profilingEnabled(quint64)
or profilingEnabledWhileWaiting(quint64)
, depending on waiting
. If the profiler's thread is waiting for an initial start signal, we can emit the signal over a Qt::DirectConnection to avoid the delay of the event loop. The features are passed on to the signal.
Definition at line 46 of file qqmlabstractprofileradapter.cpp.
References emit, features(), profilingEnabled(), and profilingEnabledWhileWaiting().
Referenced by QQmlProfilerServiceImpl::addGlobalProfiler(), and QQmlProfilerServiceImpl::startProfiling().
|
inline |
Consider the profiler to be waiting from now on. While the profiler is waiting it can be directly accessed even if it is in a different thread. This method should only be called if it is actually safe to do so.
Definition at line 49 of file qqmlabstractprofileradapter_p.h.
Referenced by QQmlProfilerServiceImpl::engineAboutToBeRemoved().
void QQmlAbstractProfilerAdapter::stopProfiling | ( | ) |
Emits either profilingDisabled()
or profilingDisabledWhileWaiting()
, depending on waiting
. If the profiler's thread is waiting for an initial start signal, we can emit the signal over a Qt::DirectConnection to avoid the delay of the event loop. This should trigger the profiler to report its collected data and subsequently delete it.
Definition at line 62 of file qqmlabstractprofileradapter.cpp.
References emit, profilingDisabled(), and profilingDisabledWhileWaiting().
Referenced by QQmlProfilerServiceImpl::stopProfiling().
|
inline |
Consider the profiler not to be waiting anymore. If it lives in a different threads any requests for it have to be done via a queued connection then.
Definition at line 48 of file qqmlabstractprofileradapter_p.h.
|
inline |
Synchronize the profiler to timer. This emits referenceTimeKnown()
.
Definition at line 54 of file qqmlabstractprofileradapter_p.h.
References Q_EMIT.
Referenced by QQmlProfilerServiceImpl::addGlobalProfiler().
|
static |
Definition at line 33 of file qqmlabstractprofileradapter_p.h.
Referenced by QQmlProfilerAdapter::sendMessages(), QV4ProfilerAdapter::sendMessages(), QQuickProfilerAdapter::sendMessages(), and QQuick3DProfilerAdapter::sendMessages().
|
protected |
Definition at line 67 of file qqmlabstractprofileradapter_p.h.
Referenced by QQmlProfilerAdapter::QQmlProfilerAdapter(), QQmlProfilerAdapter::QQmlProfilerAdapter(), QV4ProfilerAdapter::QV4ProfilerAdapter(), QQuick3DProfilerAdapter::~QQuick3DProfilerAdapter(), QQuickProfilerAdapter::~QQuickProfilerAdapter(), QV4ProfilerAdapter::receiveData(), QQmlProfilerAdapter::receiveData(), QQuick3DProfilerAdapter::receiveData(), and QQuickProfilerAdapter::receiveData().