diff options
author | Jannis Voelker <jannis.voelker@basyskom.com> | 2018-05-04 15:28:05 +0200 |
---|---|---|
committer | Jannis Völker <jannis.voelker@basyskom.com> | 2018-05-14 12:42:30 +0000 |
commit | 78d016e79ed8bc3d2d3f1c2dac90a4c75392d35b (patch) | |
tree | 089b938199b3f8221f77613be1f6c823d9d7d1cf /src/opcua/client/qopcuabackend_p.h | |
parent | 4c5bb1a2e043bc64ac6df54fd0d547ce41012f00 (diff) |
Fix subscription sharing for revised publishing intervalsv5.11.0-rc2v5.11.0
The current implementation uses an existing subscription for
sharing if a subscription with the requested publishing interval
exists. If the publishing interval of a subscription is revised
by the server, the lookup for a second monitoring with the same
requested interval fails and a new subscription is created.
This patch adds a member variable which stores the last revised
publishing interval to each backend. Requests with a publishing
interval < last revised publishing interval are "revised" by
the backend to ensure subscription sharing.
A test case which checks for correct subscription sharing is
added to tst_client.cpp.
Change-Id: I5e433501f23bf99e841c5c41e750ed8631ea7162
Reviewed-by: Rainer Keller <Rainer.Keller@qt.io>
Diffstat (limited to 'src/opcua/client/qopcuabackend_p.h')
-rw-r--r-- | src/opcua/client/qopcuabackend_p.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/src/opcua/client/qopcuabackend_p.h b/src/opcua/client/qopcuabackend_p.h index acfc603..4f9ccab 100644 --- a/src/opcua/client/qopcuabackend_p.h +++ b/src/opcua/client/qopcuabackend_p.h @@ -74,6 +74,8 @@ public: QOpcUa::Types attributeIdToTypeId(QOpcUa::NodeAttribute attr); + double revisePublishingInterval(double requestedValue, double minimumValue); + Q_SIGNALS: void stateAndOrErrorChanged(QOpcUaClient::ClientState state, QOpcUaClient::ClientError error); |