diff options
-rw-r--r-- | src/opcua/core/qopcuaplugin.h | 2 | ||||
-rw-r--r-- | src/opcua/core/qopcuaprovider.cpp | 7 | ||||
-rw-r--r-- | src/opcua/core/qopcuaprovider.h | 2 | ||||
-rw-r--r-- | src/plugins/opcua/open62541/qopen62541plugin.cpp | 3 | ||||
-rw-r--r-- | src/plugins/opcua/open62541/qopen62541plugin.h | 2 | ||||
-rw-r--r-- | src/plugins/opcua/uacpp/quacppclient.cpp | 4 | ||||
-rw-r--r-- | src/plugins/opcua/uacpp/quacppclient.h | 2 | ||||
-rw-r--r-- | src/plugins/opcua/uacpp/quacppplugin.cpp | 4 | ||||
-rw-r--r-- | src/plugins/opcua/uacpp/quacppplugin.h | 2 |
9 files changed, 17 insertions, 11 deletions
diff --git a/src/opcua/core/qopcuaplugin.h b/src/opcua/core/qopcuaplugin.h index fac78aa..9159e35 100644 --- a/src/opcua/core/qopcuaplugin.h +++ b/src/opcua/core/qopcuaplugin.h @@ -54,7 +54,7 @@ public: explicit QOpcUaPlugin(QObject *parent = nullptr); ~QOpcUaPlugin() override; - virtual QOpcUaClient *createClient() = 0; + virtual QOpcUaClient *createClient(const QVariantMap &backendProperties) = 0; }; Q_DECLARE_INTERFACE(QOpcUaPlugin, QOpcUaProviderFactory_iid) diff --git a/src/opcua/core/qopcuaprovider.cpp b/src/opcua/core/qopcuaprovider.cpp index 6f19a0d..acb8b16 100644 --- a/src/opcua/core/qopcuaprovider.cpp +++ b/src/opcua/core/qopcuaprovider.cpp @@ -196,8 +196,11 @@ static QOpcUaPlugin *loadPlugin(const QString &key) The user is responsible for deleting the returned \l QOpcUaClient object when it is no longer needed. + + The optional argument \c backendProperties can be used to pass custom backend specific settings as key value pairs. + Those settings are specific to the backend being instantiated. */ -QOpcUaClient *QOpcUaProvider::createClient(const QString &backend) +QOpcUaClient *QOpcUaProvider::createClient(const QString &backend, const QVariantMap &backendProperties) { QOpcUaPlugin *plugin; auto it = m_plugins.find(backend); @@ -213,7 +216,7 @@ QOpcUaClient *QOpcUaProvider::createClient(const QString &backend) else { plugin = it.value(); } - return plugin->createClient(); + return plugin->createClient(backendProperties); } /*! diff --git a/src/opcua/core/qopcuaprovider.h b/src/opcua/core/qopcuaprovider.h index eee66c3..fac70d5 100644 --- a/src/opcua/core/qopcuaprovider.h +++ b/src/opcua/core/qopcuaprovider.h @@ -58,7 +58,7 @@ public: explicit QOpcUaProvider(QObject *parent = nullptr); ~QOpcUaProvider() override; - Q_INVOKABLE QOpcUaClient *createClient(const QString &backend); + Q_INVOKABLE QOpcUaClient *createClient(const QString &backend, const QVariantMap &backendProperties = QVariantMap()); private: QHash<QString, QOpcUaPlugin *> m_plugins; diff --git a/src/plugins/opcua/open62541/qopen62541plugin.cpp b/src/plugins/opcua/open62541/qopen62541plugin.cpp index 3366417..7bdcb6e 100644 --- a/src/plugins/opcua/open62541/qopen62541plugin.cpp +++ b/src/plugins/opcua/open62541/qopen62541plugin.cpp @@ -63,8 +63,9 @@ QOpen62541Plugin::~QOpen62541Plugin() { } -QOpcUaClient *QOpen62541Plugin::createClient() +QOpcUaClient *QOpen62541Plugin::createClient(const QVariantMap &backendProperties) { + Q_UNUSED(backendProperties) return new QOpcUaClient(new QOpen62541Client); } diff --git a/src/plugins/opcua/open62541/qopen62541plugin.h b/src/plugins/opcua/open62541/qopen62541plugin.h index d65dbea..6987b1b 100644 --- a/src/plugins/opcua/open62541/qopen62541plugin.h +++ b/src/plugins/opcua/open62541/qopen62541plugin.h @@ -53,7 +53,7 @@ public: explicit QOpen62541Plugin(QObject *parent = nullptr); ~QOpen62541Plugin() override; - QOpcUaClient *createClient() override; + QOpcUaClient *createClient(const QVariantMap &backendProperties) override; }; QT_END_NAMESPACE diff --git a/src/plugins/opcua/uacpp/quacppclient.cpp b/src/plugins/opcua/uacpp/quacppclient.cpp index bd6d784..2fb0922 100644 --- a/src/plugins/opcua/uacpp/quacppclient.cpp +++ b/src/plugins/opcua/uacpp/quacppclient.cpp @@ -36,10 +36,12 @@ QT_BEGIN_NAMESPACE Q_DECLARE_LOGGING_CATEGORY(QT_OPCUA_PLUGINS_UACPP) -QUACppClient::QUACppClient() +QUACppClient::QUACppClient(const QVariantMap &backendProperties) : QOpcUaClientImpl() , m_backend(new UACppAsyncBackend(this)) { + Q_UNUSED(backendProperties); + m_thread = new QThread(); connectBackendWithClient(m_backend); m_backend->moveToThread(m_thread); diff --git a/src/plugins/opcua/uacpp/quacppclient.h b/src/plugins/opcua/uacpp/quacppclient.h index af16cd2..7c79970 100644 --- a/src/plugins/opcua/uacpp/quacppclient.h +++ b/src/plugins/opcua/uacpp/quacppclient.h @@ -35,7 +35,7 @@ class QUACppClient : public QOpcUaClientImpl Q_OBJECT public: - explicit QUACppClient(); + explicit QUACppClient(const QVariantMap &backendProperties); ~QUACppClient(); void connectToEndpoint(const QUrl &url) override; diff --git a/src/plugins/opcua/uacpp/quacppplugin.cpp b/src/plugins/opcua/uacpp/quacppplugin.cpp index 8e33184..77d2709 100644 --- a/src/plugins/opcua/uacpp/quacppplugin.cpp +++ b/src/plugins/opcua/uacpp/quacppplugin.cpp @@ -38,9 +38,9 @@ QUACppPlugin::~QUACppPlugin() { } -QOpcUaClient *QUACppPlugin::createClient() +QOpcUaClient *QUACppPlugin::createClient(const QVariantMap &backendProperties) { - return new QOpcUaClient(new QUACppClient()); + return new QOpcUaClient(new QUACppClient(backendProperties)); } QT_END_NAMESPACE diff --git a/src/plugins/opcua/uacpp/quacppplugin.h b/src/plugins/opcua/uacpp/quacppplugin.h index c7a8bf2..801f12c 100644 --- a/src/plugins/opcua/uacpp/quacppplugin.h +++ b/src/plugins/opcua/uacpp/quacppplugin.h @@ -39,7 +39,7 @@ public: explicit QUACppPlugin(QObject *parent = 0); ~QUACppPlugin() override; - QOpcUaClient *createClient() override; + QOpcUaClient *createClient(const QVariantMap &backendProperties) override; private: }; |