summaryrefslogtreecommitdiffstats
path: root/src/OpcUaAuth.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/OpcUaAuth.h')
-rw-r--r--src/OpcUaAuth.h75
1 files changed, 75 insertions, 0 deletions
diff --git a/src/OpcUaAuth.h b/src/OpcUaAuth.h
new file mode 100644
index 0000000..8d53c1d
--- /dev/null
+++ b/src/OpcUaAuth.h
@@ -0,0 +1,75 @@
+/**
+ * @file OpcUaAuth.h
+ * @brief QML component for OPC UA authentication configuration.
+ */
+#ifndef OPCUAAUTH_H
+#define OPCUAAUTH_H
+
+#include <QObject>
+#include <QOpcUaAuthenticationInformation>
+#include <QQmlEngine>
+
+class OpcUaAuth : public QObject
+{
+ Q_OBJECT
+ QML_ELEMENT
+
+ Q_PROPERTY (AuthMode mode READ mode WRITE setMode NOTIFY modeChanged)
+ Q_PROPERTY (
+ QString username READ username WRITE setUsername NOTIFY usernameChanged)
+ Q_PROPERTY (
+ QString password READ password WRITE setPassword NOTIFY passwordChanged)
+ Q_PROPERTY (
+ QString certPath READ certPath WRITE setCertPath NOTIFY certPathChanged)
+ Q_PROPERTY (
+ QString keyPath READ keyPath WRITE setKeyPath NOTIFY keyPathChanged)
+
+public:
+ /// Authentication modes supported by OPC UA.
+ enum AuthMode
+ {
+ Anonymous,
+ UserPass,
+ Certificate
+ };
+ Q_ENUM (AuthMode)
+
+ explicit OpcUaAuth (QObject *parent = nullptr);
+
+ AuthMode mode () const;
+ void setMode (AuthMode mode);
+
+ QString username () const;
+ void setUsername (const QString &username);
+
+ QString password () const;
+ void setPassword (const QString &password);
+
+ QString certPath () const;
+ void setCertPath (const QString &path);
+
+ QString keyPath () const;
+ void setKeyPath (const QString &path);
+
+ /**
+ * @brief Build a QOpcUaAuthenticationInformation from the
+ * current mode and credentials.
+ */
+ QOpcUaAuthenticationInformation toAuthenticationInformation () const;
+
+signals:
+ void modeChanged ();
+ void usernameChanged ();
+ void passwordChanged ();
+ void certPathChanged ();
+ void keyPathChanged ();
+
+private:
+ AuthMode m_mode = Anonymous;
+ QString m_username;
+ QString m_password;
+ QString m_certPath;
+ QString m_keyPath;
+};
+
+#endif // OPCUAAUTH_H