diff options
Diffstat (limited to 'tools/qmlprofiler/profiledata.h')
-rw-r--r-- | tools/qmlprofiler/profiledata.h | 247 |
1 files changed, 0 insertions, 247 deletions
diff --git a/tools/qmlprofiler/profiledata.h b/tools/qmlprofiler/profiledata.h deleted file mode 100644 index f5d726916c..0000000000 --- a/tools/qmlprofiler/profiledata.h +++ /dev/null @@ -1,247 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/ -** -** This file is part of the QtQml module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** GNU Lesser General Public License Usage -** This file may be used under the terms of the GNU Lesser General Public -** License version 2.1 as published by the Free Software Foundation and -** appearing in the file LICENSE.LGPL included in the packaging of this -** file. Please review the following information to ensure the GNU Lesser -** General Public License version 2.1 requirements will be met: -** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU General -** Public License version 3.0 as published by the Free Software Foundation -** and appearing in the file LICENSE.GPL included in the packaging of this -** file. Please review the following information to ensure the GNU General -** Public License version 3.0 requirements will be met: -** http://www.gnu.org/copyleft/gpl.html. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms and -** conditions contained in a signed written agreement between you and Nokia. -** -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef PROFILEDATA_H -#define PROFILEDATA_H - -#include <QtQml/private/qqmlprofilerservice_p.h> - -#include <QtCore/QObject> -#include <QtCore/QHash> - -struct QmlEvent; -struct V8Event; - -typedef QHash<QString, QmlEvent *> QmlEventHash; -typedef QList<QmlEvent *> QmlEvents; -typedef QList<V8Event *> V8Events; - -struct EventLocation -{ - EventLocation() : line(-1),column(-1) {} - EventLocation(const QString &file, int lineNumber, int columnNumber) - : filename(file), line(lineNumber), column(columnNumber) {} - QString filename; - int line; - int column; -}; - -struct QmlEventSub { - QmlEventSub(QmlEvent *from) - : reference(from), duration(0), calls(0), inLoopPath(false) - {} - QmlEventSub(QmlEventSub *from) - : reference(from->reference), duration(from->duration), - calls(from->calls), inLoopPath(from->inLoopPath) - {} - QmlEvent *reference; - qint64 duration; - qint64 calls; - bool inLoopPath; -}; - -struct QmlEvent -{ - QmlEvent(); - ~QmlEvent(); - - QString displayname; - QString eventHashStr; - QString details; - EventLocation location; - QQmlProfilerService::RangeType eventType; - QHash <QString, QmlEventSub *> parentHash; - QHash <QString, QmlEventSub *> childrenHash; - qint64 duration; - qint64 calls; - qint64 minTime; - qint64 maxTime; - double timePerCall; - double percentOfTime; - qint64 medianTime; - int eventId; - bool isBindingLoop; - - QmlEvent &operator=(const QmlEvent &ref); -}; - -struct V8EventSub { - V8EventSub(V8Event *from) - : reference(from), totalTime(0) - {} - V8EventSub(V8EventSub *from) - : reference(from->reference), totalTime(from->totalTime) - {} - - V8Event *reference; - qint64 totalTime; -}; - -struct V8Event -{ - V8Event(); - ~V8Event(); - - QString displayName; - QString filename; - QString functionName; - int line; - double totalTime; // given in milliseconds - double totalPercent; - double selfTime; - double selfPercent; - QHash <QString, V8EventSub *> parentHash; - QHash <QString, V8EventSub *> childrenHash; - int eventId; - - V8Event &operator=(const V8Event &ref); -}; - -class ProfileData : public QObject -{ - Q_OBJECT - -public: - explicit ProfileData(QObject *parent = 0); - ~ProfileData(); - - QmlEvents getQmlEvents() const; - QmlEvent *qmlEvent(int eventId) const; - const V8Events& getV8Events() const; - V8Event *v8Event(int eventId) const; - - int findFirstIndex(qint64 startTime) const; - int findFirstIndexNoParents(qint64 startTime) const; - int findLastIndex(qint64 endTime) const; - Q_INVOKABLE qint64 firstTimeMark() const; - Q_INVOKABLE qint64 lastTimeMark() const; - - Q_INVOKABLE int count() const; - - // data access - Q_INVOKABLE qint64 getStartTime(int index) const; - Q_INVOKABLE qint64 getEndTime(int index) const; - Q_INVOKABLE qint64 getDuration(int index) const; - Q_INVOKABLE int getType(int index) const; - Q_INVOKABLE int getNestingLevel(int index) const; - Q_INVOKABLE int getNestingDepth(int index) const; - Q_INVOKABLE QString getFilename(int index) const; - Q_INVOKABLE int getLine(int index) const; - Q_INVOKABLE int getColumn(int index) const; - Q_INVOKABLE QString getDetails(int index) const; - Q_INVOKABLE int getEventId(int index) const; - Q_INVOKABLE int getFramerate(int index) const; - Q_INVOKABLE int getAnimationCount(int index) const; - Q_INVOKABLE int getMaximumAnimationCount() const; - Q_INVOKABLE int getMinimumAnimationCount() const; - - // per-type data - Q_INVOKABLE int uniqueEventsOfType(int type) const; - Q_INVOKABLE int maxNestingForType(int type) const; - Q_INVOKABLE QString eventTextForType(int type, int index) const; - Q_INVOKABLE QString eventDisplayNameForType(int type, int index) const; - Q_INVOKABLE int eventIdForType(int type, int index) const; - Q_INVOKABLE int eventPosInType(int index) const; - - Q_INVOKABLE qint64 traceStartTime() const; - Q_INVOKABLE qint64 traceEndTime() const; - Q_INVOKABLE qint64 traceDuration() const; - Q_INVOKABLE qint64 qmlMeasuredTime() const; - Q_INVOKABLE qint64 v8MeasuredTime() const; - - void showErrorDialog(const QString &st ) const; - void compileStatistics(qint64 startTime, qint64 endTime); - -signals: - void dataReady(); - void countChanged(); - void error(const QString &error); - void dataClear(); - void processingData(); - void postProcessing(); - - void requestDetailsForLocation(int eventType, const EventLocation &location); - void detailsChanged(int eventId, const QString &newString); - void reloadDetailLabels(); - void reloadDocumentsForDetails(); - -public slots: - void clear(); - void addQmlEvent(QQmlProfilerService::RangeType type, - qint64 startTime, qint64 length, - const QStringList &data, - const EventLocation &location); - void complete(); - - void addV8Event(int depth,const QString &function,const QString &filename, - int lineNumber, double totalTime, double selfTime); - void addFrameEvent(qint64 time, int framerate, int animationcount); - bool save(const QString &filename); - void load(const QString &filename); - void setFilename(const QString &filename); - void load(); - - void setTraceEndTime( qint64 time ); - void setTraceStartTime( qint64 time ); - - void rewriteDetailsString(QQmlProfilerService::RangeType eventType, - const EventLocation &location, - const QString &newString); - void finishedRewritingDetails(); - -private: - void postProcess(); - void sortEndTimes(); - void findAnimationLimits(); - void sortStartTimes(); - void computeLevels(); - void computeNestingLevels(); - void computeNestingDepth(); - void prepareForDisplay(); - void linkEndsToStarts(); - void reloadDetails(); - void findBindingLoops(qint64 startTime, qint64 endTime); - -private: - class ProfileDataPrivate *d; -}; - -#endif // PROFILEDATA_H |