aboutsummaryrefslogtreecommitdiffstats
path: root/src/declarative/debugger/qdeclarativedebugclient.cpp
diff options
context:
space:
mode:
authorAurindam Jana <aurindam.jana@nokia.com>2011-12-15 17:52:22 +0100
committerQt by Nokia <qt-info@nokia.com>2011-12-16 11:42:57 +0100
commitcac6c2d474ae1bf42de3e8138cda71c9e5391437 (patch)
treef82ccad3abd269d0dfeaee7671a180e743b10672 /src/declarative/debugger/qdeclarativedebugclient.cpp
parent152a35b027258188bb57db2bafebe5b46d88eb43 (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.cpp45
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);