diff options
Diffstat (limited to 'src/qmldebug')
-rw-r--r-- | src/qmldebug/qqmldebugclient.cpp | 6 | ||||
-rw-r--r-- | src/qmldebug/qqmldebugclient_p.h | 2 | ||||
-rw-r--r-- | src/qmldebug/qqmldebugconnection.cpp | 37 | ||||
-rw-r--r-- | src/qmldebug/qqmldebugconnection_p.h | 4 | ||||
-rw-r--r-- | src/qmldebug/qqmlprofilerclient.cpp | 13 | ||||
-rw-r--r-- | src/qmldebug/qqmlprofilerclient_p.h | 3 |
6 files changed, 37 insertions, 28 deletions
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 |