forked from qt-creator/qt-creator
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:
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user