diff options
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> |