Debugger: Store the version info of debug service plugins

Change-Id: I7cd73c5c4148929fa0a1d60d33fe16357f8c3705
Reviewed-by: Kai Koehne <kai.koehne@nokia.com>
This commit is contained in:
Aurindam Jana
2011-12-15 17:56:58 +01:00
parent 8cc3844038
commit 35054215a4
2 changed files with 42 additions and 5 deletions

View File

@@ -65,7 +65,7 @@ public:
QIODevice *device; // Currently either a QTcpSocket or a SymbianUtils::OstChannel
bool gotHello;
QStringList serverPlugins;
QHash <QString, float> serverPlugins;
QHash<QString, QDeclarativeDebugClient *> plugins;
void advertisePlugins();
@@ -120,7 +120,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;
}
}
@@ -153,8 +167,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) {
@@ -377,6 +406,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);