aboutsummaryrefslogtreecommitdiffstats
path: root/src/declarative
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
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')
-rw-r--r--src/declarative/debugger/qdeclarativedebugclient.cpp45
-rw-r--r--src/declarative/debugger/qdeclarativedebugclient_p.h2
-rw-r--r--src/declarative/debugger/qdeclarativedebugserver.cpp21
-rw-r--r--src/declarative/debugger/qdeclarativedebugservice.cpp12
-rw-r--r--src/declarative/debugger/qdeclarativedebugservice_p.h5
-rw-r--r--src/declarative/debugger/qdeclarativedebugservice_p_p.h1
-rw-r--r--src/declarative/debugger/qdeclarativedebugtrace.cpp2
-rw-r--r--src/declarative/debugger/qdeclarativeenginedebugservice.cpp2
-rw-r--r--src/declarative/debugger/qdeclarativeinspectorservice.cpp2
-rw-r--r--src/declarative/debugger/qv8debugservice.cpp12
-rw-r--r--src/declarative/debugger/qv8profilerservice.cpp2
11 files changed, 79 insertions, 27 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);
diff --git a/src/declarative/debugger/qdeclarativedebugclient_p.h b/src/declarative/debugger/qdeclarativedebugclient_p.h
index 5b219358ff..7b9a342627 100644
--- a/src/declarative/debugger/qdeclarativedebugclient_p.h
+++ b/src/declarative/debugger/qdeclarativedebugclient_p.h
@@ -111,7 +111,7 @@ public:
~QDeclarativeDebugClient();
QString name() const;
-
+ float serviceVersion() const;
Status status() const;
virtual void sendMessage(const QByteArray &);
diff --git a/src/declarative/debugger/qdeclarativedebugserver.cpp b/src/declarative/debugger/qdeclarativedebugserver.cpp
index b8963d24f3..23f1e0de7b 100644
--- a/src/declarative/debugger/qdeclarativedebugserver.cpp
+++ b/src/declarative/debugger/qdeclarativedebugserver.cpp
@@ -63,7 +63,7 @@ QT_BEGIN_NAMESPACE
version: an int representing the highest protocol version the client knows
pluginNames: plugins available on client side
2. Server sends
- "QDeclarativeDebugClient" 0 version pluginNames
+ "QDeclarativeDebugClient" 0 version pluginNames pluginVersions
version: an int representing the highest protocol version the client & server know
pluginNames: plugins available on server side. plugins both in the client and server message are enabled.
client plugin advertisement
@@ -71,7 +71,7 @@ QT_BEGIN_NAMESPACE
"QDeclarativeDebugServer" 1 pluginNames
server plugin advertisement
1. Server sends
- "QDeclarativeDebugClient" 1 pluginNames
+ "QDeclarativeDebugClient" 1 pluginNames pluginVersions
plugin communication:
Everything send with a header different to "QDeclarativeDebugServer" is sent to the appropriate plugin.
*/
@@ -146,7 +146,13 @@ void QDeclarativeDebugServerPrivate::advertisePlugins()
QByteArray message;
{
QDataStream out(&message, QIODevice::WriteOnly);
- out << QString(QLatin1String("QDeclarativeDebugClient")) << 1 << plugins.keys();
+ QStringList pluginNames;
+ QList<float> pluginVersions;
+ foreach (QDeclarativeDebugService *service, plugins.values()) {
+ pluginNames << service->name();
+ pluginVersions << service->version();
+ }
+ out << QString(QLatin1String("QDeclarativeDebugClient")) << 1 << pluginNames << pluginVersions;
}
QMetaObject::invokeMethod(q, "_q_sendMessage", Qt::QueuedConnection, Q_ARG(QByteArray, message));
@@ -326,7 +332,14 @@ void QDeclarativeDebugServer::receiveMessage(const QByteArray &message)
QByteArray helloAnswer;
{
QDataStream out(&helloAnswer, QIODevice::WriteOnly);
- out << QString(QLatin1String("QDeclarativeDebugClient")) << 0 << protocolVersion << d->plugins.keys();
+ QStringList pluginNames;
+ QList<float> pluginVersions;
+ foreach (QDeclarativeDebugService *service, d->plugins.values()) {
+ pluginNames << service->name();
+ pluginVersions << service->version();
+ }
+
+ out << QString(QLatin1String("QDeclarativeDebugClient")) << 0 << protocolVersion << pluginNames << pluginVersions;
}
d->connection->send(helloAnswer);
diff --git a/src/declarative/debugger/qdeclarativedebugservice.cpp b/src/declarative/debugger/qdeclarativedebugservice.cpp
index 2bdcf2ff92..560654099f 100644
--- a/src/declarative/debugger/qdeclarativedebugservice.cpp
+++ b/src/declarative/debugger/qdeclarativedebugservice.cpp
@@ -53,11 +53,12 @@ QDeclarativeDebugServicePrivate::QDeclarativeDebugServicePrivate()
{
}
-QDeclarativeDebugService::QDeclarativeDebugService(const QString &name, QObject *parent)
+QDeclarativeDebugService::QDeclarativeDebugService(const QString &name, float version, QObject *parent)
: QObject(*(new QDeclarativeDebugServicePrivate), parent)
{
Q_D(QDeclarativeDebugService);
d->name = name;
+ d->version = version;
d->server = QDeclarativeDebugServer::instance();
d->status = QDeclarativeDebugService::NotConnected;
@@ -65,11 +66,12 @@ QDeclarativeDebugService::QDeclarativeDebugService(const QString &name, QObject
}
QDeclarativeDebugService::QDeclarativeDebugService(QDeclarativeDebugServicePrivate &dd,
- const QString &name, QObject *parent)
+ const QString &name, float version, QObject *parent)
: QObject(dd, parent)
{
Q_D(QDeclarativeDebugService);
d->name = name;
+ d->version = version;
d->server = QDeclarativeDebugServer::instance();
d->status = QDeclarativeDebugService::NotConnected;
}
@@ -107,6 +109,12 @@ QString QDeclarativeDebugService::name() const
return d->name;
}
+float QDeclarativeDebugService::version() const
+{
+ Q_D(const QDeclarativeDebugService);
+ return d->version;
+}
+
QDeclarativeDebugService::Status QDeclarativeDebugService::status() const
{
Q_D(const QDeclarativeDebugService);
diff --git a/src/declarative/debugger/qdeclarativedebugservice_p.h b/src/declarative/debugger/qdeclarativedebugservice_p.h
index 3bcf310336..9698f91cbc 100644
--- a/src/declarative/debugger/qdeclarativedebugservice_p.h
+++ b/src/declarative/debugger/qdeclarativedebugservice_p.h
@@ -71,10 +71,11 @@ class Q_DECLARATIVE_PRIVATE_EXPORT QDeclarativeDebugService : public QObject
Q_DISABLE_COPY(QDeclarativeDebugService)
public:
- explicit QDeclarativeDebugService(const QString &, QObject *parent = 0);
+ explicit QDeclarativeDebugService(const QString &, float version, QObject *parent = 0);
~QDeclarativeDebugService();
QString name() const;
+ float version() const;
enum Status { NotConnected, Unavailable, Enabled };
Status status() const;
@@ -91,7 +92,7 @@ public:
static bool hasDebuggingClient();
protected:
- QDeclarativeDebugService(QDeclarativeDebugServicePrivate &dd, const QString &, QObject *parent = 0);
+ QDeclarativeDebugService(QDeclarativeDebugServicePrivate &dd, const QString &name, float version, QObject *parent = 0);
Status registerService();
diff --git a/src/declarative/debugger/qdeclarativedebugservice_p_p.h b/src/declarative/debugger/qdeclarativedebugservice_p_p.h
index 12233ed739..3c501e8a76 100644
--- a/src/declarative/debugger/qdeclarativedebugservice_p_p.h
+++ b/src/declarative/debugger/qdeclarativedebugservice_p_p.h
@@ -71,6 +71,7 @@ public:
QDeclarativeDebugServicePrivate();
QString name;
+ float version;
QDeclarativeDebugServer *server;
QDeclarativeDebugService::Status status;
};
diff --git a/src/declarative/debugger/qdeclarativedebugtrace.cpp b/src/declarative/debugger/qdeclarativedebugtrace.cpp
index f3f8156dc9..724399df7e 100644
--- a/src/declarative/debugger/qdeclarativedebugtrace.cpp
+++ b/src/declarative/debugger/qdeclarativedebugtrace.cpp
@@ -74,7 +74,7 @@ QByteArray QDeclarativeDebugData::toByteArray() const
}
QDeclarativeDebugTrace::QDeclarativeDebugTrace()
- : QDeclarativeDebugService(QLatin1String("CanvasFrameRate")),
+ : QDeclarativeDebugService(QLatin1String("CanvasFrameRate"), 1),
m_enabled(false), m_messageReceived(false)
{
m_timer.start();
diff --git a/src/declarative/debugger/qdeclarativeenginedebugservice.cpp b/src/declarative/debugger/qdeclarativeenginedebugservice.cpp
index f831929e57..0e3c05553f 100644
--- a/src/declarative/debugger/qdeclarativeenginedebugservice.cpp
+++ b/src/declarative/debugger/qdeclarativeenginedebugservice.cpp
@@ -67,7 +67,7 @@ QDeclarativeEngineDebugService *QDeclarativeEngineDebugService::instance()
}
QDeclarativeEngineDebugService::QDeclarativeEngineDebugService(QObject *parent)
- : QDeclarativeDebugService(QLatin1String("QDeclarativeEngine"), parent),
+ : QDeclarativeDebugService(QLatin1String("QDeclarativeEngine"), 1, parent),
m_watch(new QDeclarativeWatcher(this)),
m_statesDelegate(0)
{
diff --git a/src/declarative/debugger/qdeclarativeinspectorservice.cpp b/src/declarative/debugger/qdeclarativeinspectorservice.cpp
index 07fed4dbb1..729a71a77e 100644
--- a/src/declarative/debugger/qdeclarativeinspectorservice.cpp
+++ b/src/declarative/debugger/qdeclarativeinspectorservice.cpp
@@ -56,7 +56,7 @@ QT_BEGIN_NAMESPACE
Q_GLOBAL_STATIC(QDeclarativeInspectorService, serviceInstance)
QDeclarativeInspectorService::QDeclarativeInspectorService()
- : QDeclarativeDebugService(QLatin1String("QDeclarativeObserverMode"))
+ : QDeclarativeDebugService(QLatin1String("QDeclarativeObserverMode"), 1)
, m_currentInspectorPlugin(0)
{
registerService();
diff --git a/src/declarative/debugger/qv8debugservice.cpp b/src/declarative/debugger/qv8debugservice.cpp
index 933c37a9ea..976f501ddb 100644
--- a/src/declarative/debugger/qv8debugservice.cpp
+++ b/src/declarative/debugger/qv8debugservice.cpp
@@ -51,16 +51,14 @@
//V8 DEBUG SERVICE PROTOCOL
// <HEADER><COMMAND><DATA>
// <HEADER> : "V8DEBUG"
-// <COMMAND> : ["connect", "disconnect", "interrupt", "version",
+// <COMMAND> : ["connect", "disconnect", "interrupt",
// "v8request", "v8message", "breakonsignal",
// "breakaftercompile"]
// <DATA> : connect, disconnect, interrupt: empty
-// version: <version_string>
// v8request, v8message: <JSONrequest_string>
// breakonsignal: <signalname_string><enabled_bool>
// breakaftercompile: <enabled_bool>
-const char *V8_DEBUGGER_KEY_VERSION_NUMBER = "1.1";
const char *V8_DEBUGGER_KEY_VERSION = "version";
const char *V8_DEBUGGER_KEY_CONNECT = "connect";
const char *V8_DEBUGGER_KEY_INTERRUPT = "interrupt";
@@ -122,7 +120,7 @@ public:
QV8DebugService::QV8DebugService(QObject *parent)
: QDeclarativeDebugService(*(new QV8DebugServicePrivate()),
- QLatin1String("V8Debugger"), parent)
+ QLatin1String("V8Debugger"), 2, parent)
{
Q_D(QV8DebugService);
v8ServiceInstancePtr = this;
@@ -267,12 +265,6 @@ void QV8DebugService::messageReceived(const QByteArray &message)
rs >> d->breakAfterCompile;
sendMessage(QV8DebugServicePrivate::packMessage(QLatin1String(V8_DEBUGGER_KEY_BREAK_AFTER_COMPILE)));
- } else if (command == V8_DEBUGGER_KEY_VERSION) {
- //We dont check the client version
- //just send the debugger version
- sendMessage(QV8DebugServicePrivate::packMessage(QLatin1String(V8_DEBUGGER_KEY_VERSION),
- QLatin1String(V8_DEBUGGER_KEY_VERSION_NUMBER)));
-
}
}
}
diff --git a/src/declarative/debugger/qv8profilerservice.cpp b/src/declarative/debugger/qv8profilerservice.cpp
index 7cbd336e17..f5c980ee78 100644
--- a/src/declarative/debugger/qv8profilerservice.cpp
+++ b/src/declarative/debugger/qv8profilerservice.cpp
@@ -100,7 +100,7 @@ public:
};
QV8ProfilerService::QV8ProfilerService(QObject *parent)
- : QDeclarativeDebugService(*(new QV8ProfilerServicePrivate()), QLatin1String("V8Profiler"), parent)
+ : QDeclarativeDebugService(*(new QV8ProfilerServicePrivate()), QLatin1String("V8Profiler"), 1, parent)
{
Q_D(QV8ProfilerService);