diff options
author | Aurindam Jana <aurindam.jana@nokia.com> | 2011-12-15 17:52:22 +0100 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2011-12-16 11:42:57 +0100 |
commit | cac6c2d474ae1bf42de3e8138cda71c9e5391437 (patch) | |
tree | f82ccad3abd269d0dfeaee7671a180e743b10672 /src/declarative/debugger/qdeclarativedebugclient.cpp | |
parent | 152a35b027258188bb57db2bafebe5b46d88eb43 (diff) |
DeclarativeDebug: Add version info to service plugins
Send the version info of each plugin alongwith the
plugin names to client.
Change-Id: I223689b32cdc5b0c48a4f508330033352b427937
Reviewed-by: Kai Koehne <kai.koehne@nokia.com>
Diffstat (limited to 'src/declarative/debugger/qdeclarativedebugclient.cpp')
-rw-r--r-- | src/declarative/debugger/qdeclarativedebugclient.cpp | 45 |
1 files changed, 41 insertions, 4 deletions
diff --git a/src/declarative/debugger/qdeclarativedebugclient.cpp b/src/declarative/debugger/qdeclarativedebugclient.cpp index 5018e9535e..9d5b88c319 100644 --- a/src/declarative/debugger/qdeclarativedebugclient.cpp +++ b/src/declarative/debugger/qdeclarativedebugclient.cpp @@ -75,7 +75,7 @@ public: QIODevice *device; bool gotHello; - QStringList serverPlugins; + QHash <QString, float> serverPlugins; QHash<QString, QDeclarativeDebugClient *> plugins; void advertisePlugins(); @@ -130,7 +130,21 @@ void QDeclarativeDebugConnectionPrivate::readyRead() int version = -1; pack >> version; if (version == protocolVersion) { - pack >> serverPlugins; + QStringList pluginNames; + QList<float> pluginVersions; + pack >> pluginNames; + if (!pack.isEmpty()) + pack >> pluginVersions; + + const int pluginNamesSize = pluginNames.size(); + const int pluginVersionsSize = pluginVersions.size(); + for (int i = 0; i < pluginNamesSize; ++i) { + float pluginVersion = 1.0; + if (i < pluginVersionsSize) + pluginVersion = pluginVersions.at(i); + serverPlugins.insert(pluginNames.at(i), pluginVersion); + } + validHello = true; } } @@ -163,8 +177,23 @@ void QDeclarativeDebugConnectionPrivate::readyRead() if (op == 1) { // Service Discovery - QStringList oldServerPlugins = serverPlugins; - pack >> serverPlugins; + QHash<QString, float> oldServerPlugins = serverPlugins; + serverPlugins.clear(); + + QStringList pluginNames; + QList<float> pluginVersions; + pack >> pluginNames; + if (!pack.isEmpty()) + pack >> pluginVersions; + + const int pluginNamesSize = pluginNames.size(); + const int pluginVersionsSize = pluginVersions.size(); + for (int i = 0; i < pluginNamesSize; ++i) { + float pluginVersion = 1.0; + if (i < pluginVersionsSize) + pluginVersion = pluginVersions.at(i); + serverPlugins.insert(pluginNames.at(i), pluginVersion); + } QHash<QString, QDeclarativeDebugClient *>::Iterator iter = plugins.begin(); for (; iter != plugins.end(); ++iter) { @@ -345,6 +374,14 @@ QString QDeclarativeDebugClient::name() const return d->name; } +float QDeclarativeDebugClient::serviceVersion() const +{ + Q_D(const QDeclarativeDebugClient); + if (d->connection->d->serverPlugins.contains(d->name)) + return d->connection->d->serverPlugins.value(d->name); + return -1; +} + QDeclarativeDebugClient::Status QDeclarativeDebugClient::status() const { Q_D(const QDeclarativeDebugClient); |