aboutsummaryrefslogtreecommitdiffstats
path: root/src/webchannel/qmetaobjectpublisher_p.h
diff options
context:
space:
mode:
authorMilian Wolff <milian.wolff@kdab.com>2014-02-05 17:44:03 +0100
committerThe Qt Project <gerrit-noreply@qt-project.org>2014-03-21 15:59:25 +0100
commit48e814442e6e8507aacd16362b44d5754c059228 (patch)
tree592f3916bf2e5dc18d57a62c3baf1ba0ae2bbf09 /src/webchannel/qmetaobjectpublisher_p.h
parente3e4d6a18d63537459f0e616360e53e816927f76 (diff)
Send response data only to target client.
Before, the response was sent to all clients in a broad-cast and had to be filtered on the client-side. This required additional client identification data to be added to all requests and responses. Now, we keep track of the transport and transport-internal client and only send the response to that client. This is very benefitial for multi-client setups but also reduces traffic for single-client setups and thus their performance. Change-Id: Ia1ef5e031b0058222083d352a8aa28a7d566a6ca Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Diffstat (limited to 'src/webchannel/qmetaobjectpublisher_p.h')
-rw-r--r--src/webchannel/qmetaobjectpublisher_p.h10
1 files changed, 5 insertions, 5 deletions
diff --git a/src/webchannel/qmetaobjectpublisher_p.h b/src/webchannel/qmetaobjectpublisher_p.h
index 3047548..4413df4 100644
--- a/src/webchannel/qmetaobjectpublisher_p.h
+++ b/src/webchannel/qmetaobjectpublisher_p.h
@@ -81,7 +81,7 @@ public:
*
* @return true if the request was handled, false otherwise.
*/
- bool handleRequest(const QJsonObject &message);
+ QByteArray handleRequest(const QJsonObject &message);
/**
* Serialize the QMetaObject of @p object and return it in JSON form.
@@ -124,10 +124,10 @@ public:
/**
* Invoke the method of index @p methodIndex on @p object with the arguments @p args.
*
- * The return value of the method invocation is then transmitted to the calling client
- * via a webchannel response to the message identified by @p id.
+ * The return value of the method invocation is then serialized and a response message
+ * is returned.
*/
- bool invokeMethod(QObject *const object, const int methodIndex, const QJsonArray &args, const QJsonValue &id);
+ QByteArray invokeMethod(QObject *const object, const int methodIndex, const QJsonArray &args, const QJsonValue &id);
/**
* Callback of the signalHandler which forwards the signal invocation to the webchannel clients.
@@ -164,7 +164,7 @@ public:
/**
* Parse the message as JSON and if it succeeds, call handleRequest with the obtained JSON object.
*/
- void handleMessage(const QString &message) Q_DECL_OVERRIDE;
+ void handleMessage(const QString &message, QWebChannelTransportInterface* transport, int clientId) Q_DECL_OVERRIDE;
signals:
void blockUpdatesChanged(bool block);