16#ifndef QGSEVENTTRACING_H
17#define QGSEVENTTRACING_H
21#include <QElapsedTimer>
81class CORE_EXPORT QgsEventTracing
97 static bool startTracing();
102 static bool stopTracing();
107 static bool isTracingEnabled();
112 static bool writeTrace(
const QString &fileName );
120 static void addEvent( EventType type,
const QString &category,
const QString &name,
const QString &
id = QString() );
128 static void addEventToQgisTrace( EventType type,
const QString &category,
const QString &name,
const QString &
id = QString() );
134 static void setFloatVariable(
const char *name,
double value,
bool continuous =
false );
140 static void setIntVariable(
const char *name, int64_t value,
bool continuous =
false );
147class CORE_EXPORT QgsScopedEvent
150 QgsScopedEvent(
const QString &category,
const QString &name )
153 , mId( QString::number( sNextId++ ) )
155 QgsEventTracing::addEvent( QgsEventTracing::Begin, mCat, mName, mId );
157 ~QgsScopedEvent() { QgsEventTracing::addEvent( QgsEventTracing::End, mCat, mName, mId ); }
160 QString mCat, mName, mId;
161 static size_t sNextId;