aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/plugins/qmltooling/packetprotocol/packetprotocol.pro6
-rw-r--r--src/plugins/qmltooling/packetprotocol/qpacket.cpp (renamed from src/qml/debugger/qpacket.cpp)67
-rw-r--r--src/plugins/qmltooling/packetprotocol/qpacket_p.h (renamed from src/qml/debugger/qpacket_p.h)21
-rw-r--r--src/plugins/qmltooling/packetprotocol/qpacketprotocol.cpp31
-rw-r--r--src/plugins/qmltooling/packetprotocol/qpacketprotocol_p.h5
-rw-r--r--src/plugins/qmltooling/qmldbg_debugger/qdebugmessageservice.cpp6
-rw-r--r--src/plugins/qmltooling/qmldbg_debugger/qmldbg_debugger.pro3
-rw-r--r--src/plugins/qmltooling/qmldbg_debugger/qqmlenginedebugservice.cpp13
-rw-r--r--src/plugins/qmltooling/qmldbg_debugger/qqmlnativedebugservice.cpp8
-rw-r--r--src/plugins/qmltooling/qmldbg_debugger/qv4debugservice.cpp9
-rw-r--r--src/plugins/qmltooling/qmldbg_inspector/abstractviewinspector.cpp12
-rw-r--r--src/plugins/qmltooling/qmldbg_inspector/qmldbg_inspector.pro3
-rw-r--r--src/plugins/qmltooling/qmldbg_native/qmldbg_native.pro6
-rw-r--r--src/plugins/qmltooling/qmldbg_native/qqmlnativedebugconnector.cpp12
-rw-r--r--src/plugins/qmltooling/qmldbg_native/qqmlnativedebugconnector.h1
-rw-r--r--src/plugins/qmltooling/qmldbg_profiler/qmldbg_profiler.pro3
-rw-r--r--src/plugins/qmltooling/qmldbg_profiler/qqmlenginecontrolservice.cpp6
-rw-r--r--src/plugins/qmltooling/qmldbg_profiler/qqmlprofileradapter.cpp5
-rw-r--r--src/plugins/qmltooling/qmldbg_profiler/qqmlprofilerservice.cpp12
-rw-r--r--src/plugins/qmltooling/qmldbg_profiler/qv4profileradapter.cpp13
-rw-r--r--src/plugins/qmltooling/qmldbg_quickprofiler/qmldbg_quickprofiler.pro5
-rw-r--r--src/plugins/qmltooling/qmldbg_quickprofiler/qquickprofileradapter.cpp4
-rw-r--r--src/plugins/qmltooling/qmldbg_server/qmldbg_server.pro3
-rw-r--r--src/plugins/qmltooling/qmldbg_server/qqmldebugserver.cpp22
-rw-r--r--src/plugins/qmltooling/qmltooling.pro18
-rw-r--r--src/plugins/qmltooling/shared/qqmldebugpacket.h64
-rw-r--r--src/plugins/qmltooling/shared/qqmldebugserver.h2
-rw-r--r--src/qml/debugger/debugger.pri6
-rw-r--r--src/qml/debugger/qqmldebugconnector.cpp3
-rw-r--r--src/qml/debugger/qqmldebugconnector_p.h5
-rw-r--r--src/qml/debugger/qqmldebugservice_p.h1
-rw-r--r--src/qmldebug/qqmldebugclient.cpp6
-rw-r--r--src/qmldebug/qqmldebugclient_p.h2
-rw-r--r--src/qmldebug/qqmldebugconnection.cpp37
-rw-r--r--src/qmldebug/qqmldebugconnection_p.h4
-rw-r--r--src/qmldebug/qqmlprofilerclient.cpp13
-rw-r--r--src/qmldebug/qqmlprofilerclient_p.h3
-rw-r--r--tests/auto/qml/debugger/qdebugmessageservice/tst_qdebugmessageservice.cpp3
-rw-r--r--tests/auto/qml/debugger/qpacketprotocol/tst_qpacketprotocol.cpp26
-rw-r--r--tests/auto/qml/debugger/qqmldebugjs/tst_qqmldebugjs.cpp14
-rw-r--r--tests/auto/qml/debugger/qqmldebugservice/tst_qqmldebugservice.cpp6
-rw-r--r--tests/auto/qml/debugger/qqmlenginecontrol/tst_qqmlenginecontrol.cpp9
-rw-r--r--tests/auto/qml/debugger/qqmlprofilerservice/tst_qqmlprofilerservice.cpp4
-rw-r--r--tests/auto/qml/debugger/shared/qqmlenginedebugclient.cpp97
-rw-r--r--tests/auto/qml/debugger/shared/qqmlenginedebugclient.h7
-rw-r--r--tests/auto/qml/debugger/shared/qqmlinspectorclient.cpp15
-rw-r--r--tools/qmlprofiler/qmlprofilerclient.cpp1
47 files changed, 324 insertions, 298 deletions
diff --git a/src/plugins/qmltooling/packetprotocol/packetprotocol.pro b/src/plugins/qmltooling/packetprotocol/packetprotocol.pro
index a6b8f26bb1..383e32b54e 100644
--- a/src/plugins/qmltooling/packetprotocol/packetprotocol.pro
+++ b/src/plugins/qmltooling/packetprotocol/packetprotocol.pro
@@ -3,9 +3,11 @@ QT = core-private qml-private
CONFIG += static internal_module
HEADERS = \
- qpacketprotocol_p.h
+ qpacketprotocol_p.h \
+ qpacket_p.h
SOURCES = \
- qpacketprotocol.cpp
+ qpacketprotocol.cpp \
+ qpacket.cpp
load(qt_module)
diff --git a/src/qml/debugger/qpacket.cpp b/src/plugins/qmltooling/packetprotocol/qpacket.cpp
index 30f2191689..1bb611ab25 100644
--- a/src/qml/debugger/qpacket.cpp
+++ b/src/plugins/qmltooling/packetprotocol/qpacket.cpp
@@ -50,22 +50,23 @@ QT_BEGIN_NAMESPACE
Applications should construct a QPacket, propagate it with data and then
transmit it over a QPacketProtocol instance. For example:
\code
+ int version = QDataStream::Qt_DefaultCompiledVersion;
QPacketProtocol protocol(...);
- QPacket myPacket;
+ QPacket myPacket(version);
myPacket << "Hello world!" << 123;
- protocol.send(myPacket);
+ protocol.send(myPacket.data());
\endcode
- As long as both ends of the connection are using the QPacketProtocol class,
- the data within this packet will be delivered unfragmented at the other end,
- ready for extraction.
+ As long as both ends of the connection are using the QPacketProtocol class
+ and the same data stream version, the data within this packet will be
+ delivered unfragmented at the other end, ready for extraction.
\code
QByteArray greeting;
int count;
- QPacket myPacket = protocol.read();
+ QPacket myPacket(version, protocol.read());
myPacket >> greeting >> count;
\endcode
@@ -78,48 +79,26 @@ QT_BEGIN_NAMESPACE
\sa QPacketProtocol
*/
-int QPacket::s_dataStreamVersion = QDataStream::Qt_4_7;
-
-void QPacket::setDataStreamVersion(int dataStreamVersion)
-{
- s_dataStreamVersion = dataStreamVersion;
-}
-
-int QPacket::dataStreamVersion()
-{
- return s_dataStreamVersion;
-}
/*!
Constructs an empty write-only packet.
*/
-QPacket::QPacket()
+QPacket::QPacket(int version)
{
- init(QIODevice::WriteOnly);
+ buf.open(QIODevice::WriteOnly);
+ setDevice(&buf);
+ setVersion(version);
}
/*!
- Creates a copy of \a other. The initial stream positions are shared, but the
- two packets are otherwise independent.
+ Constructs a read-only packet.
*/
-QPacket::QPacket(const QPacket &other) : QDataStream()
-{
- assign(other);
-}
-
-QPacket &QPacket::operator=(const QPacket &other)
-{
- if (this != &other) {
- buf.close();
- assign(other);
- }
- return *this;
-}
-
-QPacket::QPacket(const QByteArray &data)
+QPacket::QPacket(int version, const QByteArray &data)
{
buf.setData(data);
- init(QIODevice::ReadOnly);
+ buf.open(QIODevice::ReadOnly);
+ setDevice(&buf);
+ setVersion(version);
}
/*!
@@ -130,18 +109,4 @@ QByteArray QPacket::data() const
return buf.data();
}
-void QPacket::init(QIODevice::OpenMode mode)
-{
- buf.open(mode);
- setDevice(&buf);
- setVersion(s_dataStreamVersion);
-}
-
-void QPacket::assign(const QPacket &other)
-{
- buf.setData(other.buf.data());
- init(other.buf.openMode());
- buf.seek(other.buf.pos());
-}
-
QT_END_NAMESPACE
diff --git a/src/qml/debugger/qpacket_p.h b/src/plugins/qmltooling/packetprotocol/qpacket_p.h
index 759ed25145..dda152dfd1 100644
--- a/src/qml/debugger/qpacket_p.h
+++ b/src/plugins/qmltooling/packetprotocol/qpacket_p.h
@@ -31,12 +31,11 @@
**
****************************************************************************/
-#ifndef QPACKET_P_H
-#define QPACKET_P_H
+#ifndef QPACKET_H
+#define QPACKET_H
#include <QtCore/qdatastream.h>
#include <QtCore/qbuffer.h>
-#include <QtQml/private/qtqmlglobal_p.h>
//
// W A R N I N G
@@ -51,26 +50,18 @@
QT_BEGIN_NAMESPACE
-class Q_QML_PRIVATE_EXPORT QPacket : public QDataStream
+class QPacket : public QDataStream
{
public:
- QPacket();
- QPacket(const QPacket &other);
- explicit QPacket(const QByteArray &ba);
- QPacket &operator=(const QPacket &other);
-
+ QPacket(int version);
+ explicit QPacket(int version, const QByteArray &ba);
QByteArray data() const;
- static int dataStreamVersion();
- static void setDataStreamVersion(int dataStreamVersion);
-
private:
- static int s_dataStreamVersion;
void init(QIODevice::OpenMode mode);
- void assign(const QPacket &other);
QBuffer buf;
};
QT_END_NAMESPACE
-#endif // QPACKET_P_H
+#endif // QPACKET_H
diff --git a/src/plugins/qmltooling/packetprotocol/qpacketprotocol.cpp b/src/plugins/qmltooling/packetprotocol/qpacketprotocol.cpp
index 9f9dbfee90..d576e74e53 100644
--- a/src/plugins/qmltooling/packetprotocol/qpacketprotocol.cpp
+++ b/src/plugins/qmltooling/packetprotocol/qpacketprotocol.cpp
@@ -36,7 +36,6 @@
#include <QtCore/QElapsedTimer>
#include <private/qiodevice_p.h>
#include <private/qobject_p.h>
-#include <private/qpacket_p.h>
QT_BEGIN_NAMESPACE
@@ -63,9 +62,8 @@ static const int MAX_PACKET_SIZE = 0x7FFFFFFF;
QPacketProtocol does not perform any communications itself. Instead it can
operate on any QIODevice that supports the QIODevice::readyRead() signal. A
- logical "packet" is encapsulated by the companion QPacket class. The
- following example shows two ways to send data using QPacketProtocol. The
- transmitted data is equivalent in both.
+ logical "packet" is simply a QByteArray. The following example how to send
+ data using QPacketProtocol.
\code
QTcpSocket socket;
@@ -74,9 +72,9 @@ static const int MAX_PACKET_SIZE = 0x7FFFFFFF;
QPacketProtocol protocol(&socket);
// Send a packet
- QPacket packet;
+ QDataStream packet;
packet << "Hello world" << 123;
- protocol.send(packet);
+ protocol.send(packet.data());
\endcode
Likewise, the following shows how to read data from QPacketProtocol, assuming
@@ -88,16 +86,12 @@ static const int MAX_PACKET_SIZE = 0x7FFFFFFF;
int a;
QByteArray b;
- // Receive packet the quick way
- protocol.read() >> a >> b;
-
- // Receive packet the longer way
- QPacket packet = protocol.read();
+ // Receive packet
+ QDataStream packet(protocol.read());
p >> a >> b;
\endcode
\ingroup io
- \sa QPacket
*/
class QPacketProtocolPrivate : public QObjectPrivate
@@ -133,15 +127,14 @@ QPacketProtocol::QPacketProtocol(QIODevice *dev, QObject *parent)
}
/*!
- \fn void QPacketProtocol::send(const QPacket & packet)
+ \fn void QPacketProtocol::send(const QByteArray &data)
Transmit the \a packet.
*/
-void QPacketProtocol::send(const QPacket & p)
+void QPacketProtocol::send(const QByteArray &data)
{
Q_D(QPacketProtocol);
- QByteArray data = p.data();
if (data.isEmpty())
return; // We don't send empty packets
qint64 sendSize = data.size() + sizeof(qint32);
@@ -165,15 +158,13 @@ qint64 QPacketProtocol::packetsAvailable() const
}
/*!
- Return the next unread packet, or an invalid QPacket instance if no packets
+ Return the next unread packet, or an empty QByteArray if no packets
are available. This method does NOT block.
*/
-QPacket QPacketProtocol::read()
+QByteArray QPacketProtocol::read()
{
Q_D(QPacketProtocol);
-
- // Hope for in-place construction here, until we get move semantics for QBuffer
- return QPacket(d->packets.isEmpty() ? QByteArray() : d->packets.takeFirst());
+ return d->packets.isEmpty() ? QByteArray() : d->packets.takeFirst();
}
/*!
diff --git a/src/plugins/qmltooling/packetprotocol/qpacketprotocol_p.h b/src/plugins/qmltooling/packetprotocol/qpacketprotocol_p.h
index 6ed803809f..20bbc66418 100644
--- a/src/plugins/qmltooling/packetprotocol/qpacketprotocol_p.h
+++ b/src/plugins/qmltooling/packetprotocol/qpacketprotocol_p.h
@@ -35,7 +35,6 @@
#define QPACKETPROTOCOL_P_H
#include <QtCore/qobject.h>
-#include <private/qpacket_p.h>
//
// W A R N I N G
@@ -60,9 +59,9 @@ class QPacketProtocol : public QObject
public:
explicit QPacketProtocol(QIODevice *dev, QObject *parent = 0);
- void send(const QPacket &);
+ void send(const QByteArray &data);
qint64 packetsAvailable() const;
- QPacket read();
+ QByteArray read();
bool waitForReadyRead(int msecs = 3000);
Q_SIGNALS:
diff --git a/src/plugins/qmltooling/qmldbg_debugger/qdebugmessageservice.cpp b/src/plugins/qmltooling/qmldbg_debugger/qdebugmessageservice.cpp
index e7b9f24ae7..6300b2b9c6 100644
--- a/src/plugins/qmltooling/qmldbg_debugger/qdebugmessageservice.cpp
+++ b/src/plugins/qmltooling/qmldbg_debugger/qdebugmessageservice.cpp
@@ -32,10 +32,8 @@
****************************************************************************/
#include "qdebugmessageservice.h"
+#include "qqmldebugpacket.h"
#include <private/qqmldebugconnector_p.h>
-#include <private/qpacket_p.h>
-
-#include <QDataStream>
QT_BEGIN_NAMESPACE
@@ -64,7 +62,7 @@ void QDebugMessageServiceImpl::sendDebugMessage(QtMsgType type,
//We do not want to alter the message handling mechanism
//We just eavesdrop and forward the messages to a port
//only if a client is connected to it.
- QPacket ws;
+ QQmlDebugPacket ws;
ws << QByteArray("MESSAGE") << type << buf.toUtf8();
ws << QString::fromLatin1(ctxt.file).toUtf8();
ws << ctxt.line << QString::fromLatin1(ctxt.function).toUtf8();
diff --git a/src/plugins/qmltooling/qmldbg_debugger/qmldbg_debugger.pro b/src/plugins/qmltooling/qmldbg_debugger/qmldbg_debugger.pro
index b0678ef2d9..9db38d2dfe 100644
--- a/src/plugins/qmltooling/qmldbg_debugger/qmldbg_debugger.pro
+++ b/src/plugins/qmltooling/qmldbg_debugger/qmldbg_debugger.pro
@@ -1,5 +1,5 @@
TARGET = qmldbg_debugger
-QT = qml-private core-private
+QT = qml-private core-private packetprotocol-private
PLUGIN_TYPE = qmltooling
PLUGIN_CLASS_NAME = QQmlDebuggerServiceFactory
@@ -19,6 +19,7 @@ SOURCES += \
HEADERS += \
$$PWD/../shared/qqmlconfigurabledebugservice.h \
+ $$PWD/../shared/qqmldebugpacket.h \
$$PWD/qdebugmessageservice.h \
$$PWD/qqmldebuggerservicefactory.h \
$$PWD/qqmlenginedebugservice.h \
diff --git a/src/plugins/qmltooling/qmldbg_debugger/qqmlenginedebugservice.cpp b/src/plugins/qmltooling/qmldbg_debugger/qqmlenginedebugservice.cpp
index 09c352e8ad..48d940fe75 100644
--- a/src/plugins/qmltooling/qmldbg_debugger/qqmlenginedebugservice.cpp
+++ b/src/plugins/qmltooling/qmldbg_debugger/qqmlenginedebugservice.cpp
@@ -33,6 +33,7 @@
#include "qqmlenginedebugservice.h"
#include "qqmlwatcher.h"
+#include "qqmldebugpacket.h"
#include <private/qqmldebugstatesdelegate_p.h>
#include <private/qqmlboundsignal_p.h>
@@ -45,7 +46,6 @@
#include <private/qqmlvaluetype_p.h>
#include <private/qqmlvmemetaobject_p.h>
#include <private/qqmlexpression_p.h>
-#include <private/qpacket_p.h>
#include <QtCore/qdebug.h>
#include <QtCore/qmetaobject.h>
@@ -90,8 +90,7 @@ QDataStream &operator<<(QDataStream &ds,
ds << (int)data.type << data.name;
// check first whether the data can be saved
// (otherwise we assert in QVariant::operator<<)
- QByteArray buffer;
- QDataStream fakeStream(&buffer, QIODevice::WriteOnly);
+ QQmlDebugPacket fakeStream;
if (QMetaType::save(fakeStream, data.value.type(), data.value.constData()))
ds << data.value;
else
@@ -441,13 +440,13 @@ QList<QObject*> QQmlEngineDebugServiceImpl::objectForLocationInfo(const QString
void QQmlEngineDebugServiceImpl::processMessage(const QByteArray &message)
{
- QPacket ds(message);
+ QQmlDebugPacket ds(message);
QByteArray type;
int queryId;
ds >> type >> queryId;
- QPacket rs;
+ QQmlDebugPacket rs;
if (type == "LIST_ENGINES") {
rs << QByteArray("LIST_ENGINES_R");
@@ -769,7 +768,7 @@ bool QQmlEngineDebugServiceImpl::setMethodBody(int objectId, const QString &meth
void QQmlEngineDebugServiceImpl::propertyChanged(int id, int objectId, const QMetaProperty &property, const QVariant &value)
{
- QPacket rs;
+ QQmlDebugPacket rs;
rs << QByteArray("UPDATE_WATCH") << id << objectId << QByteArray(property.name()) << valueContents(value);
emit messageToClient(name(), rs.data());
}
@@ -801,7 +800,7 @@ void QQmlEngineDebugServiceImpl::objectCreated(QQmlEngine *engine, QObject *obje
int objectId = QQmlDebugService::idForObject(object);
int parentId = QQmlDebugService::idForObject(object->parent());
- QPacket rs;
+ QQmlDebugPacket rs;
//unique queryId -1
rs << QByteArray("OBJECT_CREATED") << -1 << engineId << objectId << parentId;
diff --git a/src/plugins/qmltooling/qmldbg_debugger/qqmlnativedebugservice.cpp b/src/plugins/qmltooling/qmldbg_debugger/qqmlnativedebugservice.cpp
index f5cc78e77f..6d17ec2ad0 100644
--- a/src/plugins/qmltooling/qmldbg_debugger/qqmlnativedebugservice.cpp
+++ b/src/plugins/qmltooling/qmldbg_debugger/qqmlnativedebugservice.cpp
@@ -32,6 +32,7 @@
****************************************************************************/
#include "qqmlnativedebugservice.h"
+#include "qqmldebugpacket.h"
#include <private/qqmldebugconnector_p.h>
#include <private/qv4debugging_p.h>
@@ -313,16 +314,15 @@ void NativeDebugger::handleCommand(QJsonObject *response, const QString &cmd,
static QString encodeContext(QV4::ExecutionContext *executionContext)
{
- QByteArray ba;
- QDataStream ds(&ba, QIODevice::WriteOnly);
+ QQmlDebugPacket ds;
ds << quintptr(executionContext);
- return QString::fromLatin1(ba.toHex());
+ return QString::fromLatin1(ds.data().toHex());
}
static void decodeContext(const QString &context, QV4::ExecutionContext **executionContext)
{
quintptr rawContext;
- QDataStream ds(QByteArray::fromHex(context.toLatin1()));
+ QQmlDebugPacket ds(QByteArray::fromHex(context.toLatin1()));
ds >> rawContext;
*executionContext = reinterpret_cast<QV4::ExecutionContext *>(rawContext);
}
diff --git a/src/plugins/qmltooling/qmldbg_debugger/qv4debugservice.cpp b/src/plugins/qmltooling/qmldbg_debugger/qv4debugservice.cpp
index 3a080be125..0c8de860ed 100644
--- a/src/plugins/qmltooling/qmldbg_debugger/qv4debugservice.cpp
+++ b/src/plugins/qmltooling/qmldbg_debugger/qv4debugservice.cpp
@@ -33,11 +33,12 @@
#include "qv4debugservice.h"
#include "qqmlengine.h"
+#include "qqmldebugpacket.h"
+
#include <private/qv4engine_p.h>
#include <private/qv4isel_moth_p.h>
#include <private/qv4function_p.h>
#include <private/qqmldebugconnector_p.h>
-#include <private/qpacket_p.h>
#include <private/qv8engine_p.h>
#include <QtCore/QJsonArray>
@@ -694,7 +695,7 @@ void QV4DebugServiceImpl::messageReceived(const QByteArray &message)
{
QMutexLocker lock(&m_configMutex);
- QPacket ms(message);
+ QQmlDebugPacket ms(message);
QByteArray header;
ms >> header;
@@ -735,7 +736,7 @@ void QV4DebugServiceImpl::messageReceived(const QByteArray &message)
void QV4DebugServiceImpl::sendSomethingToSomebody(const char *type, int magicNumber)
{
- QPacket rs;
+ QQmlDebugPacket rs;
rs << QByteArray(type)
<< QByteArray::number(int(version())) << QByteArray::number(magicNumber);
emit messageToClient(name(), packMessage(type, rs.data()));
@@ -758,7 +759,7 @@ void QV4DebugServiceImpl::handleV8Request(const QByteArray &payload)
QByteArray QV4DebugServiceImpl::packMessage(const QByteArray &command, const QByteArray &message)
{
- QPacket rs;
+ QQmlDebugPacket rs;
static const QByteArray cmd("V8DEBUG");
rs << cmd << command << message;
return rs.data();
diff --git a/src/plugins/qmltooling/qmldbg_inspector/abstractviewinspector.cpp b/src/plugins/qmltooling/qmldbg_inspector/abstractviewinspector.cpp
index d1bba54969..daf620805f 100644
--- a/src/plugins/qmltooling/qmldbg_inspector/abstractviewinspector.cpp
+++ b/src/plugins/qmltooling/qmldbg_inspector/abstractviewinspector.cpp
@@ -33,6 +33,7 @@
#include "abstractviewinspector.h"
#include "abstracttool.h"
+#include "qqmldebugpacket.h"
#include <QtCore/QDebug>
#include <QtQml/QQmlEngine>
@@ -40,7 +41,6 @@
#include <QtCore/private/qabstractanimation_p.h>
#include <QtQml/private/qqmldebugconnector_p.h>
#include <QtQml/private/qqmlcontext_p.h>
-#include <QtQml/private/qpacket_p.h>
#include <QtGui/QMouseEvent>
#include <QtGui/QTouchEvent>
@@ -263,7 +263,7 @@ void AbstractViewInspector::onQmlObjectDestroyed(QObject *object)
QPair<int, int> ids = m_hashObjectsTobeDestroyed.take(object);
- QPacket rs;
+ QQmlDebugPacket rs;
rs << QByteArray(RESPONSE) << ids.first << true << ids.second;
emit m_debugService->messageToClient(m_debugService->name(), rs.data());
@@ -272,7 +272,7 @@ void AbstractViewInspector::onQmlObjectDestroyed(QObject *object)
void AbstractViewInspector::handleMessage(const QByteArray &message)
{
bool success = true;
- QPacket ds(message);
+ QQmlDebugPacket ds(message);
QByteArray type;
ds >> type;
@@ -357,14 +357,14 @@ void AbstractViewInspector::handleMessage(const QByteArray &message)
}
- QPacket rs;
+ QQmlDebugPacket rs;
rs << QByteArray(RESPONSE) << requestId << success;
emit m_debugService->messageToClient(m_debugService->name(), rs.data());
}
void AbstractViewInspector::sendCurrentObjects(const QList<QObject*> &objects)
{
- QPacket ds;
+ QQmlDebugPacket ds;
ds << QByteArray(EVENT) << m_eventId++ << QByteArray(SELECT);
@@ -384,7 +384,7 @@ void AbstractViewInspector::sendQmlFileReloaded(bool success)
QByteArray response;
- QPacket rs;
+ QQmlDebugPacket rs;
rs << QByteArray(RESPONSE) << m_reloadEventId << success;
emit m_debugService->messageToClient(m_debugService->name(), rs.data());
diff --git a/src/plugins/qmltooling/qmldbg_inspector/qmldbg_inspector.pro b/src/plugins/qmltooling/qmldbg_inspector/qmldbg_inspector.pro
index 1c3e5f387b..dd5cc8ceef 100644
--- a/src/plugins/qmltooling/qmldbg_inspector/qmldbg_inspector.pro
+++ b/src/plugins/qmltooling/qmldbg_inspector/qmldbg_inspector.pro
@@ -1,5 +1,5 @@
TARGET = qmldbg_inspector
-QT += qml-private quick-private core-private gui-private
+QT += qml-private quick-private core-private gui-private packetprotocol-private
PLUGIN_TYPE = qmltooling
PLUGIN_CLASS_NAME = QQmlInspectorServiceFactory
@@ -16,6 +16,7 @@ SOURCES += \
$$PWD/qqmlinspectorservice.cpp
HEADERS += \
+ $$PWD/../shared/qqmldebugpacket.h \
$$PWD/highlight.h \
$$PWD/qquickviewinspector.h \
$$PWD/qqmlinspectorservicefactory.h \
diff --git a/src/plugins/qmltooling/qmldbg_native/qmldbg_native.pro b/src/plugins/qmltooling/qmldbg_native/qmldbg_native.pro
index 8621238eff..d490d77e50 100644
--- a/src/plugins/qmltooling/qmldbg_native/qmldbg_native.pro
+++ b/src/plugins/qmltooling/qmldbg_native/qmldbg_native.pro
@@ -1,15 +1,19 @@
TARGET = qmldbg_native
-QT += qml-private core-private
+QT += qml-private core-private packetprotocol-private
PLUGIN_TYPE = qmltooling
PLUGIN_CLASS_NAME = QQmlNativeDebugConnectorFactory
load(qt_plugin)
HEADERS += \
+ $$PWD/../shared/qqmldebugpacket.h \
$$PWD/qqmlnativedebugconnector.h
SOURCES += \
$$PWD/qqmlnativedebugconnector.cpp
+INCLUDEPATH += $$PWD \
+ $$PWD/../shared
+
OTHER_FILES += \
$$PWD/qqmlnativedebugconnector.json
diff --git a/src/plugins/qmltooling/qmldbg_native/qqmlnativedebugconnector.cpp b/src/plugins/qmltooling/qmldbg_native/qqmlnativedebugconnector.cpp
index faddaefdc7..7f5529636c 100644
--- a/src/plugins/qmltooling/qmldbg_native/qqmlnativedebugconnector.cpp
+++ b/src/plugins/qmltooling/qmldbg_native/qqmlnativedebugconnector.cpp
@@ -32,9 +32,9 @@
****************************************************************************/
#include "qqmlnativedebugconnector.h"
-#include <private/qhooks_p.h>
-#include <private/qpacket_p.h>
+#include "qqmldebugpacket.h"
+#include <private/qhooks_p.h>
#include <qqmlengine.h>
#include <QtCore/qdebug.h>
@@ -65,7 +65,7 @@ Q_DECL_EXPORT void qt_qmlDebugConnectorOpen();
// member to some other place.
Q_DECL_EXPORT void qt_qmlDebugSetStreamVersion(int version)
{
- QPacket::setDataStreamVersion(version);
+ QQmlNativeDebugConnector::setDataStreamVersion(version);
}
@@ -311,6 +311,12 @@ bool QQmlNativeDebugConnector::open(const QVariantHash &configuration)
return true;
}
+void QQmlNativeDebugConnector::setDataStreamVersion(int version)
+{
+ Q_ASSERT(version <= QDataStream::Qt_DefaultCompiledVersion);
+ s_dataStreamVersion = version;
+}
+
void QQmlNativeDebugConnector::sendMessage(const QString &name, const QByteArray &message)
{
(*responseBuffer) += name.toUtf8() + ' ' + QByteArray::number(message.size()) + ' ' + message;
diff --git a/src/plugins/qmltooling/qmldbg_native/qqmlnativedebugconnector.h b/src/plugins/qmltooling/qmldbg_native/qqmlnativedebugconnector.h
index f0d11957a7..d071d54368 100644
--- a/src/plugins/qmltooling/qmldbg_native/qqmlnativedebugconnector.h
+++ b/src/plugins/qmltooling/qmldbg_native/qqmlnativedebugconnector.h
@@ -54,6 +54,7 @@ public:
bool addService(const QString &name, QQmlDebugService *service);
bool removeService(const QString &name);
bool open(const QVariantHash &configuration);
+ static void setDataStreamVersion(int version);
private slots:
void sendMessage(const QString &name, const QByteArray &message);
diff --git a/src/plugins/qmltooling/qmldbg_profiler/qmldbg_profiler.pro b/src/plugins/qmltooling/qmldbg_profiler/qmldbg_profiler.pro
index e1c4095d88..6efe9eacad 100644
--- a/src/plugins/qmltooling/qmldbg_profiler/qmldbg_profiler.pro
+++ b/src/plugins/qmltooling/qmldbg_profiler/qmldbg_profiler.pro
@@ -1,5 +1,5 @@
TARGET = qmldbg_profiler
-QT = qml-private core-private
+QT = qml-private core-private packetprotocol-private
PLUGIN_TYPE = qmltooling
PLUGIN_CLASS_NAME = QQmlProfilerServiceFactory
@@ -14,6 +14,7 @@ SOURCES += \
HEADERS += \
$$PWD/../shared/qqmlconfigurabledebugservice.h \
+ $$PWD/../shared/qqmldebugpacket.h \
$$PWD/qqmlenginecontrolservice.h \
$$PWD/qqmlprofileradapter.h \
$$PWD/qqmlprofilerservice.h \
diff --git a/src/plugins/qmltooling/qmldbg_profiler/qqmlenginecontrolservice.cpp b/src/plugins/qmltooling/qmldbg_profiler/qqmlenginecontrolservice.cpp
index b4dfa86e56..61bf61eb13 100644
--- a/src/plugins/qmltooling/qmldbg_profiler/qqmlenginecontrolservice.cpp
+++ b/src/plugins/qmltooling/qmldbg_profiler/qqmlenginecontrolservice.cpp
@@ -32,8 +32,8 @@
****************************************************************************/
#include "qqmlenginecontrolservice.h"
+#include "qqmldebugpacket.h"
#include <QQmlEngine>
-#include <private/qpacket_p.h>
QT_BEGIN_NAMESPACE
@@ -45,7 +45,7 @@ QQmlEngineControlServiceImpl::QQmlEngineControlServiceImpl(QObject *parent) :
void QQmlEngineControlServiceImpl::messageReceived(const QByteArray &message)
{
QMutexLocker lock(&dataMutex);
- QPacket d(message);
+ QQmlDebugPacket d(message);
int command;
int engineId;
d >> command >> engineId;
@@ -107,7 +107,7 @@ void QQmlEngineControlServiceImpl::engineRemoved(QQmlEngine *engine)
void QQmlEngineControlServiceImpl::sendMessage(QQmlEngineControlServiceImpl::MessageType type, QQmlEngine *engine)
{
- QPacket d;
+ QQmlDebugPacket d;
d << type << idForObject(engine);
emit messageToClient(name(), d.data());
}
diff --git a/src/plugins/qmltooling/qmldbg_profiler/qqmlprofileradapter.cpp b/src/plugins/qmltooling/qmldbg_profiler/qqmlprofileradapter.cpp
index 8da6854289..faa1726637 100644
--- a/src/plugins/qmltooling/qmldbg_profiler/qqmlprofileradapter.cpp
+++ b/src/plugins/qmltooling/qmldbg_profiler/qqmlprofileradapter.cpp
@@ -32,8 +32,9 @@
****************************************************************************/
#include "qqmlprofileradapter.h"
+#include "qqmldebugpacket.h"
+
#include <private/qqmldebugserviceinterfaces_p.h>
-#include <private/qpacket_p.h>
QT_BEGIN_NAMESPACE
@@ -74,7 +75,7 @@ static void qQmlProfilerDataToByteArrays(const QQmlProfilerData *d, QList<QByteA
continue;
//### using QDataStream is relatively expensive
- QPacket ds;
+ QQmlDebugPacket ds;
ds << d->time << decodedMessageType << decodedDetailType;
switch (decodedMessageType) {
diff --git a/src/plugins/qmltooling/qmldbg_profiler/qqmlprofilerservice.cpp b/src/plugins/qmltooling/qmldbg_profiler/qqmlprofilerservice.cpp
index 77503c5f06..3647a62682 100644
--- a/src/plugins/qmltooling/qmldbg_profiler/qqmlprofilerservice.cpp
+++ b/src/plugins/qmltooling/qmldbg_profiler/qqmlprofilerservice.cpp
@@ -35,11 +35,11 @@
#include "qv4profileradapter.h"
#include "qqmlprofileradapter.h"
#include "qqmlprofilerservicefactory.h"
+#include "qqmldebugpacket.h"
+
#include <private/qqmlengine_p.h>
-#include <private/qpacket_p.h>
#include <private/qqmldebugpluginmanager_p.h>
-#include <QtCore/qdatastream.h>
#include <QtCore/qurl.h>
#include <QtCore/qtimer.h>
#include <QtCore/qthread.h>
@@ -212,7 +212,7 @@ void QQmlProfilerServiceImpl::startProfiling(QQmlEngine *engine, quint64 feature
{
QMutexLocker lock(&m_configMutex);
- QPacket d;
+ QQmlDebugPacket d;
d << m_timer.nsecsElapsed() << (int)Event << (int)StartTrace;
bool startedAny = false;
@@ -308,7 +308,7 @@ void QQmlProfilerServiceImpl::sendMessages()
{
QList<QByteArray> messages;
- QPacket traceEnd;
+ QQmlDebugPacket traceEnd;
if (m_waitingForStop) {
traceEnd << m_timer.nsecsElapsed() << (int)Event << (int)EndTrace;
@@ -340,7 +340,7 @@ void QQmlProfilerServiceImpl::sendMessages()
//indicate completion
messages << traceEnd.data();
- QPacket ds;
+ QQmlDebugPacket ds;
ds << (qint64)-1 << (int)Complete;
messages << ds.data();
m_waitingForStop = false;
@@ -375,7 +375,7 @@ void QQmlProfilerServiceImpl::messageReceived(const QByteArray &message)
{
QMutexLocker lock(&m_configMutex);
- QPacket stream(message);
+ QQmlDebugPacket stream(message);
int engineId = -1;
quint64 features = std::numeric_limits<quint64>::max();
diff --git a/src/plugins/qmltooling/qmldbg_profiler/qv4profileradapter.cpp b/src/plugins/qmltooling/qmldbg_profiler/qv4profileradapter.cpp
index dd9e444748..2e7051b912 100644
--- a/src/plugins/qmltooling/qmldbg_profiler/qv4profileradapter.cpp
+++ b/src/plugins/qmltooling/qmldbg_profiler/qv4profileradapter.cpp
@@ -33,8 +33,7 @@
#include "qv4profileradapter.h"
#include "qqmlprofilerservice.h"
-
-#include <private/qpacket_p.h>
+#include "qqmldebugpacket.h"
QT_BEGIN_NAMESPACE
@@ -66,7 +65,7 @@ QV4ProfilerAdapter::QV4ProfilerAdapter(QQmlProfilerService *service, QV4::Execut
qint64 QV4ProfilerAdapter::appendMemoryEvents(qint64 until, QList<QByteArray> &messages)
{
while (m_memoryData.length() > m_memoryPos && m_memoryData[m_memoryPos].timestamp <= until) {
- QPacket d;
+ QQmlDebugPacket d;
QV4::Profiling::MemoryAllocationProperties &props = m_memoryData[m_memoryPos];
d << props.timestamp << MemoryAllocation << props.type << props.size;
++m_memoryPos;
@@ -104,7 +103,7 @@ qint64 QV4ProfilerAdapter::sendMessages(qint64 until, QList<QByteArray> &message
return finalizeMessages(until, messages, m_stack.top());
appendMemoryEvents(m_stack.top(), messages);
- QPacket d;
+ QQmlDebugPacket d;
d << m_stack.pop() << RangeEnd << Javascript;
messages.append(d.data());
}
@@ -117,14 +116,14 @@ qint64 QV4ProfilerAdapter::sendMessages(qint64 until, QList<QByteArray> &message
appendMemoryEvents(props.start, messages);
- QPacket d_start;
+ QQmlDebugPacket d_start;
d_start << props.start << RangeStart << Javascript;
messages.push_back(d_start.data());
- QPacket d_location;
+ QQmlDebugPacket d_location;
d_location << props.start << RangeLocation << Javascript << props.file << props.line
<< props.column;
messages.push_back(d_location.data());
- QPacket d_data;
+ QQmlDebugPacket d_data;
d_data << props.start << RangeData << Javascript << props.name;
messages.push_back(d_data.data());
m_stack.push(props.end);
diff --git a/src/plugins/qmltooling/qmldbg_quickprofiler/qmldbg_quickprofiler.pro b/src/plugins/qmltooling/qmldbg_quickprofiler/qmldbg_quickprofiler.pro
index 9cc51c5e70..6ca0a184ca 100644
--- a/src/plugins/qmltooling/qmldbg_quickprofiler/qmldbg_quickprofiler.pro
+++ b/src/plugins/qmltooling/qmldbg_quickprofiler/qmldbg_quickprofiler.pro
@@ -1,5 +1,5 @@
TARGET = qmldbg_quickprofiler
-QT += qml-private quick-private core-private
+QT += qml-private quick-private core-private packetprotocol-private
PLUGIN_TYPE = qmltooling
PLUGIN_CLASS_NAME = QQuickProfilerAdapterFactory
@@ -13,7 +13,8 @@ SOURCES += \
HEADERS += \
$$PWD/qquickprofileradapter.h \
- $$PWD/qquickprofileradapterfactory.h
+ $$PWD/qquickprofileradapterfactory.h \
+ $$PWD/../shared/qqmldebugpacket.h
OTHER_FILES += \
qquickprofileradapter.json
diff --git a/src/plugins/qmltooling/qmldbg_quickprofiler/qquickprofileradapter.cpp b/src/plugins/qmltooling/qmldbg_quickprofiler/qquickprofileradapter.cpp
index 053db9aa45..8438a6fb3a 100644
--- a/src/plugins/qmltooling/qmldbg_quickprofiler/qquickprofileradapter.cpp
+++ b/src/plugins/qmltooling/qmldbg_quickprofiler/qquickprofileradapter.cpp
@@ -32,9 +32,9 @@
****************************************************************************/
#include "qquickprofileradapter.h"
+#include "qqmldebugpacket.h"
#include <QCoreApplication>
#include <private/qqmldebugserviceinterfaces_p.h>
-#include <private/qpacket_p.h>
#include <private/qquickprofiler_p.h>
QT_BEGIN_NAMESPACE
@@ -86,7 +86,7 @@ static void qQuickProfilerDataToByteArrays(const QQuickProfilerData &data,
continue;
//### using QDataStream is relatively expensive
- QPacket ds;
+ QQmlDebugPacket ds;
ds << data.time << decodedMessageType << decodedDetailType;
switch (decodedMessageType) {
diff --git a/src/plugins/qmltooling/qmldbg_server/qmldbg_server.pro b/src/plugins/qmltooling/qmldbg_server/qmldbg_server.pro
index b419f9ca3e..923faa01f3 100644
--- a/src/plugins/qmltooling/qmldbg_server/qmldbg_server.pro
+++ b/src/plugins/qmltooling/qmldbg_server/qmldbg_server.pro
@@ -11,7 +11,8 @@ SOURCES += \
HEADERS += \
$$PWD/qqmldebugserverfactory.h \
$$PWD/../shared/qqmldebugserver.h \
- $$PWD/../shared/qqmldebugserverconnection.h
+ $$PWD/../shared/qqmldebugserverconnection.h \
+ $$PWD/../shared/qqmldebugpacket.h
INCLUDEPATH += $$PWD \
$$PWD/../shared
diff --git a/src/plugins/qmltooling/qmldbg_server/qqmldebugserver.cpp b/src/plugins/qmltooling/qmldbg_server/qqmldebugserver.cpp
index 513aedd568..ba36048802 100644
--- a/src/plugins/qmltooling/qmldbg_server/qqmldebugserver.cpp
+++ b/src/plugins/qmltooling/qmldbg_server/qqmldebugserver.cpp
@@ -34,6 +34,7 @@
#include "qqmldebugserver.h"
#include "qqmldebugserverfactory.h"
#include "qqmldebugserverconnection.h"
+#include "qqmldebugpacket.h"
#include <private/qqmldebugservice_p.h>
#include <private/qqmlengine_p.h>
@@ -41,7 +42,6 @@
#include <private/qqmldebugpluginmanager_p.h>
#include <private/qqmldebugserviceinterfaces_p.h>
#include <private/qpacketprotocol_p.h>
-#include <private/qpacket_p.h>
#include <QtCore/QAtomicInt>
#include <QtCore/QDir>
@@ -429,7 +429,7 @@ void QQmlDebugServerImpl::receiveMessage()
if (!m_protocol)
return;
- QPacket in(m_protocol->read().data());
+ QQmlDebugPacket in(m_protocol->read());
QString name;
@@ -443,17 +443,15 @@ void QQmlDebugServerImpl::receiveMessage()
//Get the supported QDataStream version
if (!in.atEnd()) {
- int dataStreamVersion;
- in >> dataStreamVersion;
- if (dataStreamVersion > QDataStream().version())
- dataStreamVersion = QDataStream().version();
- QPacket::setDataStreamVersion(dataStreamVersion);
+ in >> s_dataStreamVersion;
+ if (s_dataStreamVersion > QDataStream::Qt_DefaultCompiledVersion)
+ s_dataStreamVersion = QDataStream::Qt_DefaultCompiledVersion;
}
// Send the hello answer immediately, since it needs to arrive before
// the plugins below start sending messages.
- QPacket out;
+ QQmlDebugPacket out;
QStringList pluginNames;
QList<float> pluginVersions;
const int count = m_plugins.count();
@@ -466,9 +464,9 @@ void QQmlDebugServerImpl::receiveMessage()
}
out << QString(QStringLiteral("QDeclarativeDebugClient")) << 0 << protocolVersion
- << pluginNames << pluginVersions << QPacket::dataStreamVersion();
+ << pluginNames << pluginVersions << dataStreamVersion();
- m_protocol->send(out);
+ m_protocol->send(out.data());
m_connection->flush();
QMutexLocker helloLock(&m_helloMutex);
@@ -650,9 +648,9 @@ bool QQmlDebugServerImpl::canSendMessage(const QString &name)
void QQmlDebugServerImpl::doSendMessage(const QString &name, const QByteArray &message)
{
- QPacket out;
+ QQmlDebugPacket out;
out << name << message;
- m_protocol->send(out);
+ m_protocol->send(out.data());
}
void QQmlDebugServerImpl::sendMessage(const QString &name, const QByteArray &message)
diff --git a/src/plugins/qmltooling/qmltooling.pro b/src/plugins/qmltooling/qmltooling.pro
index 9345e46cf7..3728126dd9 100644
--- a/src/plugins/qmltooling/qmltooling.pro
+++ b/src/plugins/qmltooling/qmltooling.pro
@@ -1,5 +1,9 @@
TEMPLATE = subdirs
+# Utilities
+SUBDIRS += \
+ packetprotocol
+
# Connectors
SUBDIRS += \
qmldbg_native \
@@ -9,12 +13,18 @@ SUBDIRS += \
# Services
SUBDIRS += \
- packetprotocol \
qmldbg_debugger \
qmldbg_profiler
qmldbg_server.depends = packetprotocol
+qmldbg_native.depends = packetprotocol
+qmldbg_debugger.depends = packetprotocol
+qmldbg_profiler.depends = packetprotocol
-qtHaveModule(quick): SUBDIRS += \
- qmldbg_inspector \
- qmldbg_quickprofiler
+qtHaveModule(quick) {
+ SUBDIRS += \
+ qmldbg_inspector \
+ qmldbg_quickprofiler
+ qmldbg_inspector.depends = packetprotocol
+ qmldbg_quickprofiler.depends = packetprotocol
+}
diff --git a/src/plugins/qmltooling/shared/qqmldebugpacket.h b/src/plugins/qmltooling/shared/qqmldebugpacket.h
new file mode 100644
index 0000000000..459937f411
--- /dev/null
+++ b/src/plugins/qmltooling/shared/qqmldebugpacket.h
@@ -0,0 +1,64 @@
+/****************************************************************************
+**
+** Copyright (C) 2015 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the QtQml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL21$
+** 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 http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 or version 3 as published by the Free
+** Software Foundation and appearing in the file LICENSE.LGPLv21 and
+** LICENSE.LGPLv3 included in the packaging of this file. Please review the
+** following information to ensure the GNU Lesser General Public License
+** requirements will be met: https://www.gnu.org/licenses/lgpl.html and
+** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** As a special exception, The Qt Company gives you certain additional
+** rights. These rights are described in The Qt Company LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef QQMLDEBUGPACKET_P_H
+#define QQMLDEBUGPACKET_P_H
+
+#include <QtCore/qbuffer.h>
+#include <QtQml/private/qqmldebugconnector_p.h>
+#include <QtPacketProtocol/private/qpacket_p.h>
+
+//
+// W A R N I N G
+// -------------
+//
+// This file is not part of the Qt API. It exists purely as an
+// implementation detail. This header file may change from version to
+// version without notice, or even be removed.
+//
+// We mean it.
+//
+
+QT_BEGIN_NAMESPACE
+
+// QPacket with a fixed data stream version, centrally set by QQmlDebugServer
+class QQmlDebugPacket : public QPacket
+{
+public:
+ QQmlDebugPacket() : QPacket(QQmlDebugConnector::dataStreamVersion()) {}
+ QQmlDebugPacket(const QByteArray &ba) : QPacket(QQmlDebugConnector::dataStreamVersion(), ba) {}
+};
+
+QT_END_NAMESPACE
+
+#endif // QQMLDEBUGPACKET_P_H
diff --git a/src/plugins/qmltooling/shared/qqmldebugserver.h b/src/plugins/qmltooling/shared/qqmldebugserver.h
index a7c17075d9..3807f12214 100644
--- a/src/plugins/qmltooling/shared/qqmldebugserver.h
+++ b/src/plugins/qmltooling/shared/qqmldebugserver.h
@@ -37,6 +37,8 @@
#include <private/qqmldebugconnector_p.h>
#include <private/qtqmlglobal_p.h>
+#include <QtCore/QIODevice>
+
//
// W A R N I N G
// -------------
diff --git a/src/qml/debugger/debugger.pri b/src/qml/debugger/debugger.pri
index 62b375f72f..30a44eedd1 100644
--- a/src/qml/debugger/debugger.pri
+++ b/src/qml/debugger/debugger.pri
@@ -6,8 +6,7 @@ SOURCES += \
$$PWD/qqmldebugservice.cpp \
$$PWD/qqmldebugserviceinterfaces.cpp \
$$PWD/qqmlabstractprofileradapter.cpp \
- $$PWD/qqmlprofiler.cpp \
- $$PWD/qpacket.cpp
+ $$PWD/qqmlprofiler.cpp
HEADERS += \
$$PWD/qqmldebugconnector_p.h \
@@ -19,7 +18,6 @@ HEADERS += \
$$PWD/qqmldebug.h \
$$PWD/qqmlprofilerdefinitions_p.h \
$$PWD/qqmlabstractprofileradapter_p.h \
- $$PWD/qqmlprofiler_p.h \
- $$PWD/qpacket_p.h
+ $$PWD/qqmlprofiler_p.h
INCLUDEPATH += $$PWD
diff --git a/src/qml/debugger/qqmldebugconnector.cpp b/src/qml/debugger/qqmldebugconnector.cpp
index 64a8a49bb9..7d9f462fe2 100644
--- a/src/qml/debugger/qqmldebugconnector.cpp
+++ b/src/qml/debugger/qqmldebugconnector.cpp
@@ -39,6 +39,7 @@
#include <QtCore/QDir>
#include <QtCore/QDebug>
#include <QtCore/QJsonArray>
+#include <QtCore/QDataStream>
#include <private/qcoreapplication_p.h>
#include <private/qqmlengine_p.h>
@@ -56,6 +57,8 @@ Q_QML_IMPORT_DEBUG_PLUGIN(QQmlInspectorServiceFactory)
Q_QML_IMPORT_DEBUG_PLUGIN(QQmlProfilerServiceFactory)
Q_QML_IMPORT_DEBUG_PLUGIN(QQmlDebuggerServiceFactory)
+int QQmlDebugConnector::s_dataStreamVersion = QDataStream::Qt_4_7;
+
struct QQmlDebugConnectorParams {
QString pluginKey;
QStringList services;
diff --git a/src/qml/debugger/qqmldebugconnector_p.h b/src/qml/debugger/qqmldebugconnector_p.h
index f5f5a87b56..499f0ece32 100644
--- a/src/qml/debugger/qqmldebugconnector_p.h
+++ b/src/qml/debugger/qqmldebugconnector_p.h
@@ -60,6 +60,10 @@ public:
static void setPluginKey(const QString &key);
static void setServices(const QStringList &services);
static QQmlDebugConnector *instance();
+ static int dataStreamVersion()
+ {
+ return s_dataStreamVersion;
+ }
virtual bool blockingMode() const = 0;
@@ -82,6 +86,7 @@ public:
protected:
static QString commandLineArguments();
+ static int s_dataStreamVersion;
};
class Q_QML_PRIVATE_EXPORT QQmlDebugConnectorFactory : public QObject {
diff --git a/src/qml/debugger/qqmldebugservice_p.h b/src/qml/debugger/qqmldebugservice_p.h
index 8b58f57349..d95d7c4357 100644
--- a/src/qml/debugger/qqmldebugservice_p.h
+++ b/src/qml/debugger/qqmldebugservice_p.h
@@ -35,7 +35,6 @@
#define QQMLDEBUGSERVICE_H
#include <QtCore/qobject.h>
-#include <QtCore/qdatastream.h>
#include <QtCore/qhash.h>
#include <private/qtqmlglobal_p.h>
diff --git a/src/qmldebug/qqmldebugclient.cpp b/src/qmldebug/qqmldebugclient.cpp
index 6f27cede4b..b5d1130f88 100644
--- a/src/qmldebug/qqmldebugclient.cpp
+++ b/src/qmldebug/qqmldebugclient.cpp
@@ -105,6 +105,12 @@ void QQmlDebugClient::sendMessage(const QByteArray &message)
d->connection->sendMessage(d->name, message);
}
+const QQmlDebugConnection *QQmlDebugClient::connection() const
+{
+ Q_D(const QQmlDebugClient);
+ return d->connection;
+}
+
void QQmlDebugClient::stateChanged(QQmlDebugClient::State state)
{
Q_UNUSED(state);
diff --git a/src/qmldebug/qqmldebugclient_p.h b/src/qmldebug/qqmldebugclient_p.h
index 997e6879cf..8e8330f317 100644
--- a/src/qmldebug/qqmldebugclient_p.h
+++ b/src/qmldebug/qqmldebugclient_p.h
@@ -68,6 +68,8 @@ public:
State state() const;
void sendMessage(const QByteArray &message);
+ const QQmlDebugConnection *connection() const;
+
protected:
QQmlDebugClient(QQmlDebugClientPrivate &dd);
diff --git a/src/qmldebug/qqmldebugconnection.cpp b/src/qmldebug/qqmldebugconnection.cpp
index b4ced0580e..e8650ebbff 100644
--- a/src/qmldebug/qqmldebugconnection.cpp
+++ b/src/qmldebug/qqmldebugconnection.cpp
@@ -64,7 +64,8 @@ public:
QTimer handshakeTimer;
bool gotHello;
- int dataStreamVersion;
+ int currentDataStreamVersion;
+ int maximumDataStreamVersion;
QHash <QString, float> serverPlugins;
QHash<QString, QQmlDebugClient *> plugins;
QStringList removedPlugins;
@@ -75,7 +76,9 @@ public:
};
QQmlDebugConnectionPrivate::QQmlDebugConnectionPrivate() :
- protocol(0), device(0), server(0), gotHello(false), dataStreamVersion(QDataStream::Qt_5_0)
+ protocol(0), device(0), server(0), gotHello(false),
+ currentDataStreamVersion(QDataStream::Qt_4_7),
+ maximumDataStreamVersion(QDataStream::Qt_DefaultCompiledVersion)
{
handshakeTimer.setSingleShot(true);
handshakeTimer.setInterval(3000);
@@ -87,18 +90,18 @@ void QQmlDebugConnectionPrivate::advertisePlugins()
if (!q->isConnected())
return;
- QPacket pack;
+ QPacket pack(currentDataStreamVersion);
pack << serverId << 1 << plugins.keys();
- protocol->send(pack);
+ protocol->send(pack.data());
flush();
}
void QQmlDebugConnection::socketConnected()
{
Q_D(QQmlDebugConnection);
- QPacket pack;
- pack << serverId << 0 << protocolVersion << d->plugins.keys() << d->dataStreamVersion;
- d->protocol->send(pack);
+ QPacket pack(d->currentDataStreamVersion);
+ pack << serverId << 0 << protocolVersion << d->plugins.keys() << d->maximumDataStreamVersion;
+ d->protocol->send(pack.data());
d->flush();
}
@@ -112,7 +115,7 @@ void QQmlDebugConnection::protocolReadyRead()
{
Q_D(QQmlDebugConnection);
if (!d->gotHello) {
- QPacket pack = d->protocol->read();
+ QPacket pack(d->currentDataStreamVersion, d->protocol->read());
QString name;
pack >> name;
@@ -140,7 +143,7 @@ void QQmlDebugConnection::protocolReadyRead()
d->serverPlugins.insert(pluginNames.at(i), pluginVersion);
}
- pack >> d->dataStreamVersion;
+ pack >> d->currentDataStreamVersion;
validHello = true;
}
}
@@ -167,7 +170,7 @@ void QQmlDebugConnection::protocolReadyRead()
}
while (d->protocol->packetsAvailable()) {
- QPacket pack = d->protocol->read();
+ QPacket pack(d->currentDataStreamVersion, d->protocol->read());
QString name;
pack >> name;
@@ -252,16 +255,16 @@ QQmlDebugConnection::~QQmlDebugConnection()
iter.value()->stateChanged(QQmlDebugClient::NotConnected);
}
-void QQmlDebugConnection::setDataStreamVersion(int dataStreamVersion)
+int QQmlDebugConnection::currentDataStreamVersion() const
{
- Q_D(QQmlDebugConnection);
- d->dataStreamVersion = dataStreamVersion;
+ Q_D(const QQmlDebugConnection);
+ return d->currentDataStreamVersion;
}
-int QQmlDebugConnection::dataStreamVersion()
+void QQmlDebugConnection::setMaximumDataStreamVersion(int maximumVersion)
{
Q_D(QQmlDebugConnection);
- return d->dataStreamVersion;
+ d->maximumDataStreamVersion = maximumVersion;
}
bool QQmlDebugConnection::isConnected() const
@@ -345,9 +348,9 @@ bool QQmlDebugConnection::sendMessage(const QString &name, const QByteArray &mes
if (!isConnected() || !d->serverPlugins.contains(name))
return false;
- QPacket pack;
+ QPacket pack(d->currentDataStreamVersion);
pack << name << message;
- d->protocol->send(pack);
+ d->protocol->send(pack.data());
d->flush();
return true;
diff --git a/src/qmldebug/qqmldebugconnection_p.h b/src/qmldebug/qqmldebugconnection_p.h
index b3845b95a0..31a4d7167a 100644
--- a/src/qmldebug/qqmldebugconnection_p.h
+++ b/src/qmldebug/qqmldebugconnection_p.h
@@ -63,8 +63,8 @@ public:
void connectToHost(const QString &hostName, quint16 port);
void startLocalServer(const QString &fileName);
- void setDataStreamVersion(int dataStreamVersion);
- int dataStreamVersion();
+ int currentDataStreamVersion() const;
+ void setMaximumDataStreamVersion(int maximumVersion);
bool isConnected() const;
void close();
diff --git a/src/qmldebug/qqmlprofilerclient.cpp b/src/qmldebug/qqmlprofilerclient.cpp
index 1ac0ba9095..f38884c309 100644
--- a/src/qmldebug/qqmlprofilerclient.cpp
+++ b/src/qmldebug/qqmlprofilerclient.cpp
@@ -32,8 +32,7 @@
****************************************************************************/
#include "qqmlprofilerclient_p_p.h"
-
-#include <QtCore/qdatastream.h>
+#include "qqmldebugconnection_p.h"
QT_BEGIN_NAMESPACE
@@ -63,10 +62,9 @@ void QQmlProfilerClient::sendRecordingStatus(bool record, int engineId, quint32
{
Q_D(const QQmlProfilerClient);
- QByteArray ba;
- QDataStream stream(&ba, QIODevice::WriteOnly);
+ QPacket stream(d->connection->currentDataStreamVersion());
stream << record << engineId << d->features << flushInterval;
- sendMessage(ba);
+ sendMessage(stream.data());
}
void QQmlProfilerClient::traceStarted(qint64 time, int engineId)
@@ -172,7 +170,7 @@ void QQmlProfilerClient::unknownEvent(QQmlProfilerDefinitions::Message messageTy
Q_UNUSED(detailType);
}
-void QQmlProfilerClient::unknownData(QDataStream &stream)
+void QQmlProfilerClient::unknownData(QPacket &stream)
{
Q_UNUSED(stream);
}
@@ -202,8 +200,7 @@ void QQmlProfilerClient::messageReceived(const QByteArray &data)
{
Q_D(const QQmlProfilerClient);
- QByteArray rwData = data;
- QDataStream stream(&rwData, QIODevice::ReadOnly);
+ QPacket stream(d->connection->currentDataStreamVersion(), data);
// Force all the 1 << <FLAG> expressions to be done in 64 bit, to silence some warnings
const quint64 one = static_cast<quint64>(1);
diff --git a/src/qmldebug/qqmlprofilerclient_p.h b/src/qmldebug/qqmlprofilerclient_p.h
index f00fbd873a..0513bef608 100644
--- a/src/qmldebug/qqmlprofilerclient_p.h
+++ b/src/qmldebug/qqmlprofilerclient_p.h
@@ -37,6 +37,7 @@
#include "qqmldebugclient_p.h"
#include "qqmleventlocation_p.h"
#include <private/qqmlprofilerdefinitions_p.h>
+#include <private/qpacket_p.h>
//
// W A R N I N G
@@ -99,7 +100,7 @@ private:
virtual void unknownEvent(QQmlProfilerDefinitions::Message messageType, qint64 time,
int detailType);
- virtual void unknownData(QDataStream &stream);
+ virtual void unknownData(QPacket &stream);
};
QT_END_NAMESPACE
diff --git a/tests/auto/qml/debugger/qdebugmessageservice/tst_qdebugmessageservice.cpp b/tests/auto/qml/debugger/qdebugmessageservice/tst_qdebugmessageservice.cpp
index 779ab8c2a1..0289a6d725 100644
--- a/tests/auto/qml/debugger/qdebugmessageservice/tst_qdebugmessageservice.cpp
+++ b/tests/auto/qml/debugger/qdebugmessageservice/tst_qdebugmessageservice.cpp
@@ -37,6 +37,7 @@
#include <private/qqmldebugclient_p.h>
#include <private/qqmldebugconnection_p.h>
+#include <private/qpacket_p.h>
#include <QtCore/qstring.h>
#include <QtCore/qlibraryinfo.h>
@@ -119,7 +120,7 @@ void QQmlDebugMsgClient::stateChanged(State state)
void QQmlDebugMsgClient::messageReceived(const QByteArray &data)
{
- QDataStream ds(data);
+ QPacket ds(connection()->currentDataStreamVersion(), data);
QByteArray command;
ds >> command;
diff --git a/tests/auto/qml/debugger/qpacketprotocol/tst_qpacketprotocol.cpp b/tests/auto/qml/debugger/qpacketprotocol/tst_qpacketprotocol.cpp
index 816ac3f278..b68cc5d6c9 100644
--- a/tests/auto/qml/debugger/qpacketprotocol/tst_qpacketprotocol.cpp
+++ b/tests/auto/qml/debugger/qpacketprotocol/tst_qpacketprotocol.cpp
@@ -96,13 +96,13 @@ void tst_QPacketProtocol::send()
QByteArray ba;
int num;
- QPacket packet;
+ QPacket packet(QDataStream::Qt_DefaultCompiledVersion);
packet << "Hello world" << 123;
- out.send(packet);
+ out.send(packet.data());
QVERIFY(QQmlDebugTest::waitForSignal(&in, SIGNAL(readyRead())));
- QPacket p = in.read();
+ QPacket p(QDataStream::Qt_DefaultCompiledVersion, in.read());
p >> ba >> num;
QCOMPARE(ba, QByteArray("Hello world") + '\0');
QCOMPARE(num, 123);
@@ -119,9 +119,9 @@ void tst_QPacketProtocol::packetsAvailable()
QCOMPARE(in.packetsAvailable(), qint64(0));
for (int i=0; i<packetCount; i++) {
- QPacket packet;
+ QPacket packet(QDataStream::Qt_DefaultCompiledVersion);
packet << "Hello";
- out.send(packet);
+ out.send(packet.data());
}
QVERIFY(QQmlDebugTest::waitForSignal(&in, SIGNAL(readyRead())));
@@ -142,30 +142,30 @@ void tst_QPacketProtocol::read()
QPacketProtocol in(m_client);
QPacketProtocol out(m_serverConn);
- QVERIFY(in.read().atEnd());
+ QVERIFY(in.read().isEmpty());
- QPacket packet;
+ QPacket packet(QDataStream::Qt_DefaultCompiledVersion);
packet << 123;
- out.send(packet);
+ out.send(packet.data());
- QPacket packet2;
+ QPacket packet2(QDataStream::Qt_DefaultCompiledVersion);
packet2 << 456;
- out.send(packet2);
+ out.send(packet2.data());
QVERIFY(QQmlDebugTest::waitForSignal(&in, SIGNAL(readyRead())));
int num;
- QPacket p1 = in.read();
+ QPacket p1(QDataStream::Qt_DefaultCompiledVersion, in.read());
QVERIFY(!p1.atEnd());
p1 >> num;
QCOMPARE(num, 123);
- QPacket p2 = in.read();
+ QPacket p2(QDataStream::Qt_DefaultCompiledVersion, in.read());
QVERIFY(!p2.atEnd());
p2 >> num;
QCOMPARE(num, 456);
- QVERIFY(in.read().atEnd());
+ QVERIFY(in.read().isEmpty());
}
QTEST_MAIN(tst_QPacketProtocol)
diff --git a/tests/auto/qml/debugger/qqmldebugjs/tst_qqmldebugjs.cpp b/tests/auto/qml/debugger/qqmldebugjs/tst_qqmldebugjs.cpp
index d6facc4200..13674fdb61 100644
--- a/tests/auto/qml/debugger/qqmldebugjs/tst_qqmldebugjs.cpp
+++ b/tests/auto/qml/debugger/qqmldebugjs/tst_qqmldebugjs.cpp
@@ -37,6 +37,7 @@
#include <private/qqmldebugclient_p.h>
#include <private/qqmldebugconnection_p.h>
+#include <private/qpacket_p.h>
#include <QtTest/qtest.h>
#include <QtCore/qprocess.h>
@@ -559,11 +560,9 @@ void QJSDebugClient::setBreakpoint(QString type, QString target, int line, int c
// }
if (type == QLatin1String(EVENT)) {
- QByteArray reply;
- QDataStream rs(&reply, QIODevice::WriteOnly);
+ QPacket rs(connection()->currentDataStreamVersion());
rs << target.toUtf8() << enabled;
- sendMessage(packMessage(QByteArray("breakonsignal"), reply));
-
+ sendMessage(packMessage(QByteArray("breakonsignal"), rs.data()));
} else {
VARIANTMAPINIT;
jsonVal.setProperty(QLatin1String(COMMAND),QJSValue(QLatin1String(SETBREAKPOINT)));
@@ -711,7 +710,7 @@ void QJSDebugClient::stateChanged(State state)
void QJSDebugClient::messageReceived(const QByteArray &data)
{
- QDataStream ds(data);
+ QPacket ds(connection()->currentDataStreamVersion(), data);
QByteArray command;
ds >> command;
@@ -796,11 +795,10 @@ void QJSDebugClient::flushSendBuffer()
QByteArray QJSDebugClient::packMessage(const QByteArray &type, const QByteArray &message)
{
- QByteArray reply;
- QDataStream rs(&reply, QIODevice::WriteOnly);
+ QPacket rs(connection()->currentDataStreamVersion());
QByteArray cmd = "V8DEBUG";
rs << cmd << type << message;
- return reply;
+ return rs.data();
}
void tst_QQmlDebugJS::initTestCase()
diff --git a/tests/auto/qml/debugger/qqmldebugservice/tst_qqmldebugservice.cpp b/tests/auto/qml/debugger/qqmldebugservice/tst_qqmldebugservice.cpp
index 80eb5fbb3c..e2cdc89a56 100644
--- a/tests/auto/qml/debugger/qqmldebugservice/tst_qqmldebugservice.cpp
+++ b/tests/auto/qml/debugger/qqmldebugservice/tst_qqmldebugservice.cpp
@@ -207,7 +207,7 @@ void tst_QQmlDebugService::checkSupportForDataStreamVersion()
client.sendMessage(msg);
QByteArray resp = client.waitForResponse();
QCOMPARE(resp, msg);
- QCOMPARE(m_conn->dataStreamVersion(), int(QDataStream::Qt_5_0));
+ QCOMPARE(m_conn->currentDataStreamVersion(), int(QDataStream::Qt_DefaultCompiledVersion));
}
void tst_QQmlDebugService::idForObject()
@@ -250,7 +250,7 @@ void tst_QQmlDebugService::checkSupportForOldDataStreamVersion()
//create a new connection;
delete m_conn;
m_conn = new QQmlDebugConnection(this);
- m_conn->setDataStreamVersion(QDataStream::Qt_4_7);
+ m_conn->setMaximumDataStreamVersion(QDataStream::Qt_5_0);
for (int i = 0; i < 50; ++i) {
// try for 5 seconds ...
m_conn->connectToHost("127.0.0.1", PORT);
@@ -270,7 +270,7 @@ void tst_QQmlDebugService::checkSupportForOldDataStreamVersion()
client.sendMessage(msg);
QByteArray resp = client.waitForResponse();
QCOMPARE(resp, msg);
- QCOMPARE(m_conn->dataStreamVersion(), int(QDataStream::Qt_4_7));
+ QCOMPARE(m_conn->currentDataStreamVersion(), int(QDataStream::Qt_5_0));
}
QTEST_MAIN(tst_QQmlDebugService)
diff --git a/tests/auto/qml/debugger/qqmlenginecontrol/tst_qqmlenginecontrol.cpp b/tests/auto/qml/debugger/qqmlenginecontrol/tst_qqmlenginecontrol.cpp
index 961fe2f50c..0a6c6c9a92 100644
--- a/tests/auto/qml/debugger/qqmlenginecontrol/tst_qqmlenginecontrol.cpp
+++ b/tests/auto/qml/debugger/qqmlenginecontrol/tst_qqmlenginecontrol.cpp
@@ -36,6 +36,7 @@
#include <private/qqmldebugclient_p.h>
#include <private/qqmldebugconnection_p.h>
+#include <private/qpacket_p.h>
#include <QtTest/qtest.h>
#include <QtCore/qlibraryinfo.h>
@@ -69,10 +70,9 @@ public:
void command(CommandType command, int engine) {
- QByteArray message;
- QDataStream stream(&message, QIODevice::WriteOnly);
+ QPacket stream(connection()->currentDataStreamVersion());
stream << (int)command << engine;
- sendMessage(message);
+ sendMessage(stream.data());
}
QList<int> startingEngines;
@@ -119,8 +119,7 @@ private slots:
void QQmlEngineControlClient::messageReceived(const QByteArray &message)
{
- QByteArray msg = message;
- QDataStream stream(&msg, QIODevice::ReadOnly);
+ QPacket stream(connection()->currentDataStreamVersion(), message);
int messageType;
int engineId;
diff --git a/tests/auto/qml/debugger/qqmlprofilerservice/tst_qqmlprofilerservice.cpp b/tests/auto/qml/debugger/qqmlprofilerservice/tst_qqmlprofilerservice.cpp
index 199da00e0c..3a9666b8fe 100644
--- a/tests/auto/qml/debugger/qqmlprofilerservice/tst_qqmlprofilerservice.cpp
+++ b/tests/auto/qml/debugger/qqmlprofilerservice/tst_qqmlprofilerservice.cpp
@@ -99,7 +99,7 @@ private:
void complete();
void unknownEvent(QQmlProfilerDefinitions::Message messageType, qint64 time, int detailType);
- void unknownData(QDataStream &stream);
+ void unknownData(QPacket &stream);
};
void QQmlProfilerTestClient::traceStarted(qint64 time, int engineId)
@@ -230,7 +230,7 @@ void QQmlProfilerTestClient::unknownEvent(QQmlProfilerDefinitions::Message messa
.arg(messageType).arg(detailType).arg(time)));
}
-void QQmlProfilerTestClient::unknownData(QDataStream &stream)
+void QQmlProfilerTestClient::unknownData(QPacket &stream)
{
QFAIL(qPrintable(QString::fromLatin1("%1 bytes of extra data after receiving message.")
.arg(stream.device()->bytesAvailable())));
diff --git a/tests/auto/qml/debugger/shared/qqmlenginedebugclient.cpp b/tests/auto/qml/debugger/shared/qqmlenginedebugclient.cpp
index 7db0d9055d..ca7f31d7ce 100644
--- a/tests/auto/qml/debugger/shared/qqmlenginedebugclient.cpp
+++ b/tests/auto/qml/debugger/shared/qqmlenginedebugclient.cpp
@@ -32,8 +32,6 @@
****************************************************************************/
#include "qqmlenginedebugclient.h"
-#include "qdatastream.h"
-
#include <private/qqmldebugconnection_p.h>
struct QmlObjectData {
@@ -48,7 +46,7 @@ struct QmlObjectData {
int parentId;
};
-QDataStream &operator>>(QDataStream &ds, QmlObjectData &data)
+QPacket &operator>>(QPacket &ds, QmlObjectData &data)
{
ds >> data.url >> data.lineNumber >> data.columnNumber >> data.idString
>> data.objectName >> data.objectType >> data.objectId >> data.contextId
@@ -66,7 +64,7 @@ struct QmlObjectProperty {
bool hasNotifySignal;
};
-QDataStream &operator>>(QDataStream &ds, QmlObjectProperty &data)
+QPacket &operator>>(QPacket &ds, QmlObjectProperty &data)
{
int type;
ds >> type >> data.name >> data.value >> data.valueTypeName
@@ -91,11 +89,10 @@ quint32 QQmlEngineDebugClient::addWatch(
*success = false;
if (state() == QQmlDebugClient::Enabled) {
id = getId();
- QByteArray message;
- QDataStream ds(&message, QIODevice::WriteOnly);
+ QPacket ds(m_connection->currentDataStreamVersion());
ds << QByteArray("WATCH_PROPERTY") << id << property.objectDebugId
<< property.name.toUtf8();
- sendMessage(message);
+ sendMessage(ds.data());
*success = true;
}
return id;
@@ -117,10 +114,9 @@ quint32 QQmlEngineDebugClient::addWatch(
*success = false;
if (state() == QQmlDebugClient::Enabled) {
id = getId();
- QByteArray message;
- QDataStream ds(&message, QIODevice::WriteOnly);
+ QPacket ds(m_connection->currentDataStreamVersion());
ds << QByteArray("WATCH_EXPR_OBJECT") << id << object.debugId << expr;
- sendMessage(message);
+ sendMessage(ds.data());
*success = true;
}
return id;
@@ -133,10 +129,9 @@ quint32 QQmlEngineDebugClient::addWatch(
*success = false;
if (state() == QQmlDebugClient::Enabled) {
id = getId();
- QByteArray message;
- QDataStream ds(&message, QIODevice::WriteOnly);
+ QPacket ds(m_connection->currentDataStreamVersion());
ds << QByteArray("WATCH_OBJECT") << id << object.debugId;
- sendMessage(message);
+ sendMessage(ds.data());
*success = true;
}
return id;
@@ -154,10 +149,9 @@ void QQmlEngineDebugClient::removeWatch(quint32 id, bool *success)
{
*success = false;
if (state() == QQmlDebugClient::Enabled) {
- QByteArray message;
- QDataStream ds(&message, QIODevice::WriteOnly);
+ QPacket ds(m_connection->currentDataStreamVersion());
ds << QByteArray("NO_WATCH") << id;
- sendMessage(message);
+ sendMessage(ds.data());
*success = true;
}
}
@@ -169,10 +163,9 @@ quint32 QQmlEngineDebugClient::queryAvailableEngines(bool *success)
*success = false;
if (state() == QQmlDebugClient::Enabled) {
id = getId();
- QByteArray message;
- QDataStream ds(&message, QIODevice::WriteOnly);
+ QPacket ds(m_connection->currentDataStreamVersion());
ds << QByteArray("LIST_ENGINES") << id;
- sendMessage(message);
+ sendMessage(ds.data());
*success = true;
}
return id;
@@ -186,10 +179,9 @@ quint32 QQmlEngineDebugClient::queryRootContexts(
*success = false;
if (state() == QQmlDebugClient::Enabled && engine.debugId != -1) {
id = getId();
- QByteArray message;
- QDataStream ds(&message, QIODevice::WriteOnly);
+ QPacket ds(m_connection->currentDataStreamVersion());
ds << QByteArray("LIST_OBJECTS") << id << engine.debugId;
- sendMessage(message);
+ sendMessage(ds.data());
*success = true;
}
return id;
@@ -203,11 +195,9 @@ quint32 QQmlEngineDebugClient::queryObject(
*success = false;
if (state() == QQmlDebugClient::Enabled && object.debugId != -1) {
id = getId();
- QByteArray message;
- QDataStream ds(&message, QIODevice::WriteOnly);
- ds << QByteArray("FETCH_OBJECT") << id << object.debugId << false <<
- true;
- sendMessage(message);
+ QPacket ds(m_connection->currentDataStreamVersion());
+ ds << QByteArray("FETCH_OBJECT") << id << object.debugId << false << true;
+ sendMessage(ds.data());
*success = true;
}
return id;
@@ -221,11 +211,10 @@ quint32 QQmlEngineDebugClient::queryObjectsForLocation(
*success = false;
if (state() == QQmlDebugClient::Enabled) {
id = getId();
- QByteArray message;
- QDataStream ds(&message, QIODevice::WriteOnly);
+ QPacket ds(m_connection->currentDataStreamVersion());
ds << QByteArray("FETCH_OBJECTS_FOR_LOCATION") << id << file << lineNumber
<< columnNumber << false << true;
- sendMessage(message);
+ sendMessage(ds.data());
*success = true;
}
return id;
@@ -239,11 +228,9 @@ quint32 QQmlEngineDebugClient::queryObjectRecursive(
*success = false;
if (state() == QQmlDebugClient::Enabled && object.debugId != -1) {
id = getId();
- QByteArray message;
- QDataStream ds(&message, QIODevice::WriteOnly);
- ds << QByteArray("FETCH_OBJECT") << id << object.debugId << true <<
- true;
- sendMessage(message);
+ QPacket ds(m_connection->currentDataStreamVersion());
+ ds << QByteArray("FETCH_OBJECT") << id << object.debugId << true << true;
+ sendMessage(ds.data());
*success = true;
}
return id;
@@ -257,11 +244,10 @@ quint32 QQmlEngineDebugClient::queryObjectsForLocationRecursive(const QString &f
*success = false;
if (state() == QQmlDebugClient::Enabled) {
id = getId();
- QByteArray message;
- QDataStream ds(&message, QIODevice::WriteOnly);
+ QPacket ds(m_connection->currentDataStreamVersion());
ds << QByteArray("FETCH_OBJECTS_FOR_LOCATION") << id << file << lineNumber
<< columnNumber << true << true;
- sendMessage(message);
+ sendMessage(ds.data());
*success = true;
}
return id;
@@ -275,11 +261,10 @@ quint32 QQmlEngineDebugClient::queryExpressionResult(
*success = false;
if (state() == QQmlDebugClient::Enabled) {
id = getId();
- QByteArray message;
- QDataStream ds(&message, QIODevice::WriteOnly);
+ QPacket ds(m_connection->currentDataStreamVersion());
ds << QByteArray("EVAL_EXPRESSION") << id << objectDebugId << expr
<< engines()[0].debugId;
- sendMessage(message);
+ sendMessage(ds.data());
*success = true;
}
return id;
@@ -293,10 +278,9 @@ quint32 QQmlEngineDebugClient::queryExpressionResultBC(
*success = false;
if (state() == QQmlDebugClient::Enabled) {
id = getId();
- QByteArray message;
- QDataStream ds(&message, QIODevice::WriteOnly);
+ QPacket ds(m_connection->currentDataStreamVersion());
ds << QByteArray("EVAL_EXPRESSION") << id << objectDebugId << expr;
- sendMessage(message);
+ sendMessage(ds.data());
*success = true;
}
return id;
@@ -314,11 +298,10 @@ quint32 QQmlEngineDebugClient::setBindingForObject(
*success = false;
if (state() == QQmlDebugClient::Enabled && objectDebugId != -1) {
id = getId();
- QByteArray message;
- QDataStream ds(&message, QIODevice::WriteOnly);
+ QPacket ds(m_connection->currentDataStreamVersion());
ds << QByteArray("SET_BINDING") << id << objectDebugId << propertyName
<< bindingExpression << isLiteralValue << source << line;
- sendMessage(message);
+ sendMessage(ds.data());
*success = true;
}
return id;
@@ -333,10 +316,9 @@ quint32 QQmlEngineDebugClient::resetBindingForObject(
*success = false;
if (state() == QQmlDebugClient::Enabled && objectDebugId != -1) {
id = getId();
- QByteArray message;
- QDataStream ds(&message, QIODevice::WriteOnly);
+ QPacket ds(m_connection->currentDataStreamVersion());
ds << QByteArray("RESET_BINDING") << id << objectDebugId << propertyName;
- sendMessage(message);
+ sendMessage(ds.data());
*success = true;
}
return id;
@@ -350,17 +332,16 @@ quint32 QQmlEngineDebugClient::setMethodBody(
*success = false;
if (state() == QQmlDebugClient::Enabled && objectDebugId != -1) {
id = getId();
- QByteArray message;
- QDataStream ds(&message, QIODevice::WriteOnly);
+ QPacket ds(m_connection->currentDataStreamVersion());
ds << QByteArray("SET_METHOD_BODY") << id << objectDebugId
<< methodName << methodBody;
- sendMessage(message);
+ sendMessage(ds.data());
*success = true;
}
return id;
}
-void QQmlEngineDebugClient::decode(QDataStream &ds,
+void QQmlEngineDebugClient::decode(QPacket &ds,
QmlDebugObjectReference &o,
bool simple)
{
@@ -421,7 +402,7 @@ void QQmlEngineDebugClient::decode(QDataStream &ds,
}
}
-void QQmlEngineDebugClient::decode(QDataStream &ds,
+void QQmlEngineDebugClient::decode(QPacket &ds,
QList<QmlDebugObjectReference> &o,
bool simple)
{
@@ -434,7 +415,7 @@ void QQmlEngineDebugClient::decode(QDataStream &ds,
}
}
-void QQmlEngineDebugClient::decode(QDataStream &ds,
+void QQmlEngineDebugClient::decode(QPacket &ds,
QmlDebugContextReference &c)
{
ds >> c.name >> c.debugId;
@@ -462,9 +443,7 @@ void QQmlEngineDebugClient::decode(QDataStream &ds,
void QQmlEngineDebugClient::messageReceived(const QByteArray &data)
{
m_valid = false;
- QDataStream ds(data);
- ds.setVersion(m_connection->dataStreamVersion());
-
+ QPacket ds(m_connection->currentDataStreamVersion(), data);
int queryId;
QByteArray type;
diff --git a/tests/auto/qml/debugger/shared/qqmlenginedebugclient.h b/tests/auto/qml/debugger/shared/qqmlenginedebugclient.h
index 60f5a7e66b..d7f103d44a 100644
--- a/tests/auto/qml/debugger/shared/qqmlenginedebugclient.h
+++ b/tests/auto/qml/debugger/shared/qqmlenginedebugclient.h
@@ -35,6 +35,7 @@
#define QQMLENGINEDEBUGCLIENT_H
#include <private/qqmldebugclient_p.h>
+#include <private/qpacket_p.h>
#include <QtCore/qurl.h>
#include <QtCore/qvariant.h>
@@ -205,9 +206,9 @@ public:
quint32 getId() { return m_nextId++; }
- void decode(QDataStream &, QmlDebugContextReference &);
- void decode(QDataStream &, QmlDebugObjectReference &, bool simple);
- void decode(QDataStream &ds, QList<QmlDebugObjectReference> &o, bool simple);
+ void decode(QPacket &ds, QmlDebugContextReference &);
+ void decode(QPacket &ds, QmlDebugObjectReference &, bool simple);
+ void decode(QPacket &ds, QList<QmlDebugObjectReference> &o, bool simple);
QList<QmlDebugEngineReference> engines() { return m_engines; }
QmlDebugContextReference rootContext() { return m_rootContext; }
diff --git a/tests/auto/qml/debugger/shared/qqmlinspectorclient.cpp b/tests/auto/qml/debugger/shared/qqmlinspectorclient.cpp
index 0c7ab60f5e..5fce58c17d 100644
--- a/tests/auto/qml/debugger/shared/qqmlinspectorclient.cpp
+++ b/tests/auto/qml/debugger/shared/qqmlinspectorclient.cpp
@@ -32,35 +32,34 @@
****************************************************************************/
#include "qqmlinspectorclient.h"
-#include "qdatastream.h"
+#include <private/qpacket_p.h>
+#include <private/qqmldebugconnection_p.h>
#include <QtCore/qdebug.h>
void QQmlInspectorClient::setShowAppOnTop(bool showOnTop)
{
- QByteArray message;
- QDataStream ds(&message, QIODevice::WriteOnly);
+ QPacket ds(connection()->currentDataStreamVersion());
ds << QByteArray("request") << m_requestId++
<< QByteArray("showAppOnTop") << showOnTop;
- sendMessage(message);
+ sendMessage(ds.data());
}
void QQmlInspectorClient::reloadQml(const QHash<QString, QByteArray> &changesHash)
{
- QByteArray message;
- QDataStream ds(&message, QIODevice::WriteOnly);
+ QPacket ds(connection()->currentDataStreamVersion());
m_reloadRequestId = m_requestId;
ds << QByteArray("request") << m_requestId++
<< QByteArray("reload") << changesHash;
- sendMessage(message);
+ sendMessage(ds.data());
}
void QQmlInspectorClient::messageReceived(const QByteArray &message)
{
- QDataStream ds(message);
+ QPacket ds(connection()->currentDataStreamVersion(), message);
QByteArray type;
ds >> type;
diff --git a/tools/qmlprofiler/qmlprofilerclient.cpp b/tools/qmlprofiler/qmlprofilerclient.cpp
index 018f1ec803..4a0dfb8394 100644
--- a/tools/qmlprofiler/qmlprofilerclient.cpp
+++ b/tools/qmlprofiler/qmlprofilerclient.cpp
@@ -38,7 +38,6 @@
#include <QtCore/QStack>
#include <QtCore/QStringList>
-#include <QtCore/QDataStream>
#include <limits>