diff options
author | Ulf Hermann <ulf.hermann@qt.io> | 2016-05-04 18:55:44 +0200 |
---|---|---|
committer | Ulf Hermann <ulf.hermann@qt.io> | 2016-05-10 16:44:58 +0000 |
commit | ca5d9659e19a92ed15fe5b839f1989152f87d18b (patch) | |
tree | 116c395ac4041f69d8bfb134d30769a2197ad597 /src | |
parent | 943fc80f515b5f5e1d1751ae5a3179477261d9fc (diff) | |
download | qt-creator-ca5d9659e19a92ed15fe5b839f1989152f87d18b.tar.gz |
QmlProfiler: Provide stream operators for QmlEventType and QmlNote
This is the foundation for a new file format.
Change-Id: Ib5ae5bfe8b45d9dc654b443ab700186993c3bfc9
Reviewed-by: Christian Kandeler <christian.kandeler@theqtcompany.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/plugins/qmlprofiler/qmleventlocation.cpp | 41 | ||||
-rw-r--r-- | src/plugins/qmlprofiler/qmleventlocation.h | 3 | ||||
-rw-r--r-- | src/plugins/qmlprofiler/qmleventtype.cpp | 50 | ||||
-rw-r--r-- | src/plugins/qmlprofiler/qmleventtype.h | 3 | ||||
-rw-r--r-- | src/plugins/qmlprofiler/qmlnote.cpp | 41 | ||||
-rw-r--r-- | src/plugins/qmlprofiler/qmlnote.h | 3 | ||||
-rw-r--r-- | src/plugins/qmlprofiler/qmlprofiler.pro | 3 | ||||
-rw-r--r-- | src/plugins/qmlprofiler/qmlprofiler.qbs | 5 |
8 files changed, 147 insertions, 2 deletions
diff --git a/src/plugins/qmlprofiler/qmleventlocation.cpp b/src/plugins/qmlprofiler/qmleventlocation.cpp new file mode 100644 index 0000000000..caef446d55 --- /dev/null +++ b/src/plugins/qmlprofiler/qmleventlocation.cpp @@ -0,0 +1,41 @@ +/**************************************************************************** +** +** Copyright (C) 2016 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of Qt Creator. +** +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3 as published by the Free Software +** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-3.0.html. +** +****************************************************************************/ + +#include "qmleventlocation.h" +#include <QDataStream> + +namespace QmlProfiler { + +QDataStream &operator>>(QDataStream &stream, QmlEventLocation &location) +{ + return stream >> location.filename >> location.line >> location.column; +} + +QDataStream &operator<<(QDataStream &stream, const QmlEventLocation &location) +{ + return stream << location.filename << location.line << location.column; +} + +} // namespace QmlProfiler diff --git a/src/plugins/qmlprofiler/qmleventlocation.h b/src/plugins/qmlprofiler/qmleventlocation.h index 8ee6de60e2..e24655cc9f 100644 --- a/src/plugins/qmlprofiler/qmleventlocation.h +++ b/src/plugins/qmlprofiler/qmleventlocation.h @@ -42,4 +42,7 @@ struct QMLPROFILER_EXPORT QmlEventLocation int column; }; +QDataStream &operator>>(QDataStream &stream, QmlEventLocation &location); +QDataStream &operator<<(QDataStream &stream, const QmlEventLocation &location); + } // namespace QmlProfiler diff --git a/src/plugins/qmlprofiler/qmleventtype.cpp b/src/plugins/qmlprofiler/qmleventtype.cpp new file mode 100644 index 0000000000..3d32b1343f --- /dev/null +++ b/src/plugins/qmlprofiler/qmleventtype.cpp @@ -0,0 +1,50 @@ +/**************************************************************************** +** +** Copyright (C) 2016 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of Qt Creator. +** +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3 as published by the Free Software +** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-3.0.html. +** +****************************************************************************/ + +#include "qmleventtype.h" +#include <QDataStream> + +namespace QmlProfiler { + +QDataStream &operator>>(QDataStream &stream, QmlEventType &type) +{ + quint8 message; + quint8 rangeType; + stream >> type.displayName >> type.data >> type.location >> message >> rangeType + >> type.detailType; + type.message = static_cast<Message>(message); + type.rangeType = static_cast<RangeType>(rangeType); + return stream; +} + +QDataStream &operator<<(QDataStream &stream, const QmlEventType &type) +{ + return stream << type.displayName << type.data << type.location + << static_cast<quint8>(type.message) << static_cast<quint8>(type.rangeType) + << type.detailType; +} + + +} // namespace QmlProfiler diff --git a/src/plugins/qmlprofiler/qmleventtype.h b/src/plugins/qmlprofiler/qmleventtype.h index 24a70ee077..5221091ece 100644 --- a/src/plugins/qmlprofiler/qmleventtype.h +++ b/src/plugins/qmlprofiler/qmleventtype.h @@ -48,6 +48,9 @@ struct QmlEventType { int detailType; // can be EventType, BindingType, PixmapEventType or SceneGraphFrameType }; +QDataStream &operator>>(QDataStream &stream, QmlEventType &type); +QDataStream &operator<<(QDataStream &stream, const QmlEventType &type); + } // namespace QmlProfiler Q_DECLARE_METATYPE(QmlProfiler::QmlEventType) diff --git a/src/plugins/qmlprofiler/qmlnote.cpp b/src/plugins/qmlprofiler/qmlnote.cpp new file mode 100644 index 0000000000..ad21cf3f56 --- /dev/null +++ b/src/plugins/qmlprofiler/qmlnote.cpp @@ -0,0 +1,41 @@ +/**************************************************************************** +** +** Copyright (C) 2016 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of Qt Creator. +** +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3 as published by the Free Software +** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-3.0.html. +** +****************************************************************************/ + +#include "qmlnote.h" +#include <QDataStream> + +namespace QmlProfiler { + +QDataStream &operator>>(QDataStream &stream, QmlNote ¬e) +{ + return stream >> note.typeIndex >> note.startTime >> note.duration >> note.text; +} + +QDataStream &operator<<(QDataStream &stream, const QmlNote ¬e) +{ + return stream << note.typeIndex << note.startTime << note.duration << note.text; +} + +} // namespace QmlProfiler diff --git a/src/plugins/qmlprofiler/qmlnote.h b/src/plugins/qmlprofiler/qmlnote.h index 63d26a6c97..85ea3da1ac 100644 --- a/src/plugins/qmlprofiler/qmlnote.h +++ b/src/plugins/qmlprofiler/qmlnote.h @@ -41,6 +41,9 @@ struct QmlNote { QString text; }; +QDataStream &operator>>(QDataStream &stream, QmlNote ¬e); +QDataStream &operator<<(QDataStream &stream, const QmlNote ¬e); + } // namespace QmlProfiler Q_DECLARE_METATYPE(QmlProfiler::QmlNote) diff --git a/src/plugins/qmlprofiler/qmlprofiler.pro b/src/plugins/qmlprofiler/qmlprofiler.pro index ad80cd4838..ee7786fec7 100644 --- a/src/plugins/qmlprofiler/qmlprofiler.pro +++ b/src/plugins/qmlprofiler/qmlprofiler.pro @@ -13,6 +13,9 @@ SOURCES += \ localqmlprofilerrunner.cpp \ memoryusagemodel.cpp \ pixmapcachemodel.cpp \ + qmleventlocation.cpp \ + qmleventtype.cpp \ + qmlnote.cpp \ qmlprofileranimationsmodel.cpp \ qmlprofilerattachdialog.cpp \ qmlprofilerbindingloopsrenderpass.cpp \ diff --git a/src/plugins/qmlprofiler/qmlprofiler.qbs b/src/plugins/qmlprofiler/qmlprofiler.qbs index 3770029fd7..a2335867fe 100644 --- a/src/plugins/qmlprofiler/qmlprofiler.qbs +++ b/src/plugins/qmlprofiler/qmlprofiler.qbs @@ -28,8 +28,9 @@ QtcPlugin { "memoryusagemodel.cpp", "memoryusagemodel.h", "pixmapcachemodel.cpp", "pixmapcachemodel.h", "qmlevent.h", - "qmleventlocation.h", - "qmleventtype.h", "qmlnote.h", + "qmleventlocation.cpp", "qmleventlocation.h", + "qmleventtype.cpp", "qmleventtype.h", + "qmlnote.cpp", "qmlnote.h", "qmlprofiler_global.h", "qmlprofileranimationsmodel.h", "qmlprofileranimationsmodel.cpp", "qmlprofilerattachdialog.cpp", "qmlprofilerattachdialog.h", |