forked from qt-creator/qt-creator
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>
This commit is contained in:
41
src/plugins/qmlprofiler/qmleventlocation.cpp
Normal file
41
src/plugins/qmlprofiler/qmleventlocation.cpp
Normal file
@@ -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
|
@@ -42,4 +42,7 @@ struct QMLPROFILER_EXPORT QmlEventLocation
|
|||||||
int column;
|
int column;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
QDataStream &operator>>(QDataStream &stream, QmlEventLocation &location);
|
||||||
|
QDataStream &operator<<(QDataStream &stream, const QmlEventLocation &location);
|
||||||
|
|
||||||
} // namespace QmlProfiler
|
} // namespace QmlProfiler
|
||||||
|
50
src/plugins/qmlprofiler/qmleventtype.cpp
Normal file
50
src/plugins/qmlprofiler/qmleventtype.cpp
Normal file
@@ -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
|
@@ -48,6 +48,9 @@ struct QmlEventType {
|
|||||||
int detailType; // can be EventType, BindingType, PixmapEventType or SceneGraphFrameType
|
int detailType; // can be EventType, BindingType, PixmapEventType or SceneGraphFrameType
|
||||||
};
|
};
|
||||||
|
|
||||||
|
QDataStream &operator>>(QDataStream &stream, QmlEventType &type);
|
||||||
|
QDataStream &operator<<(QDataStream &stream, const QmlEventType &type);
|
||||||
|
|
||||||
} // namespace QmlProfiler
|
} // namespace QmlProfiler
|
||||||
|
|
||||||
Q_DECLARE_METATYPE(QmlProfiler::QmlEventType)
|
Q_DECLARE_METATYPE(QmlProfiler::QmlEventType)
|
||||||
|
41
src/plugins/qmlprofiler/qmlnote.cpp
Normal file
41
src/plugins/qmlprofiler/qmlnote.cpp
Normal file
@@ -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
|
@@ -41,6 +41,9 @@ struct QmlNote {
|
|||||||
QString text;
|
QString text;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
QDataStream &operator>>(QDataStream &stream, QmlNote ¬e);
|
||||||
|
QDataStream &operator<<(QDataStream &stream, const QmlNote ¬e);
|
||||||
|
|
||||||
} // namespace QmlProfiler
|
} // namespace QmlProfiler
|
||||||
|
|
||||||
Q_DECLARE_METATYPE(QmlProfiler::QmlNote)
|
Q_DECLARE_METATYPE(QmlProfiler::QmlNote)
|
||||||
|
@@ -13,6 +13,9 @@ SOURCES += \
|
|||||||
localqmlprofilerrunner.cpp \
|
localqmlprofilerrunner.cpp \
|
||||||
memoryusagemodel.cpp \
|
memoryusagemodel.cpp \
|
||||||
pixmapcachemodel.cpp \
|
pixmapcachemodel.cpp \
|
||||||
|
qmleventlocation.cpp \
|
||||||
|
qmleventtype.cpp \
|
||||||
|
qmlnote.cpp \
|
||||||
qmlprofileranimationsmodel.cpp \
|
qmlprofileranimationsmodel.cpp \
|
||||||
qmlprofilerattachdialog.cpp \
|
qmlprofilerattachdialog.cpp \
|
||||||
qmlprofilerbindingloopsrenderpass.cpp \
|
qmlprofilerbindingloopsrenderpass.cpp \
|
||||||
|
@@ -28,8 +28,9 @@ QtcPlugin {
|
|||||||
"memoryusagemodel.cpp", "memoryusagemodel.h",
|
"memoryusagemodel.cpp", "memoryusagemodel.h",
|
||||||
"pixmapcachemodel.cpp", "pixmapcachemodel.h",
|
"pixmapcachemodel.cpp", "pixmapcachemodel.h",
|
||||||
"qmlevent.h",
|
"qmlevent.h",
|
||||||
"qmleventlocation.h",
|
"qmleventlocation.cpp", "qmleventlocation.h",
|
||||||
"qmleventtype.h", "qmlnote.h",
|
"qmleventtype.cpp", "qmleventtype.h",
|
||||||
|
"qmlnote.cpp", "qmlnote.h",
|
||||||
"qmlprofiler_global.h",
|
"qmlprofiler_global.h",
|
||||||
"qmlprofileranimationsmodel.h", "qmlprofileranimationsmodel.cpp",
|
"qmlprofileranimationsmodel.h", "qmlprofileranimationsmodel.cpp",
|
||||||
"qmlprofilerattachdialog.cpp", "qmlprofilerattachdialog.h",
|
"qmlprofilerattachdialog.cpp", "qmlprofilerattachdialog.h",
|
||||||
|
Reference in New Issue
Block a user