QOpcUaGenericStructValue Class

Holds the value of a generic OPC UA structured type. More...

Header: #include <QOpcUaGenericStructValue>
CMake: find_package(Qt6 REQUIRED COMPONENTS OpcUa)
target_link_libraries(mytarget PRIVATE Qt6::OpcUa)
qmake: QT += opcua
Since: Qt 6.7

Public Functions

QOpcUaGenericStructValue()
QOpcUaGenericStructValue(const QString &typeName, const QString &typeId, const QOpcUaStructureDefinition &definition)
QOpcUaGenericStructValue(const QString &typeName, const QString &typeId, const QOpcUaStructureDefinition &definition, const QHash<QString, QVariant> &fields)
QOpcUaGenericStructValue(const QOpcUaGenericStructValue &other)
QOpcUaGenericStructValue(QOpcUaGenericStructValue &&other)
~QOpcUaGenericStructValue()
QHash<QString, QVariant> fields() const
QHash<QString, QVariant> &fieldsRef()
void setFields(const QHash<QString, QVariant> &fields)
void setStructureDefinition(const QOpcUaStructureDefinition &structureDefinition)
void setTypeId(const QString &typeId)
void setTypeName(const QString &typeName)
QOpcUaStructureDefinition structureDefinition() const
void swap(QOpcUaGenericStructValue &other)
QString toString() const
QString typeId() const
QString typeName() const
QVariant operator QVariant() const
QOpcUaGenericStructValue &operator=(QOpcUaGenericStructValue &&other)
QOpcUaGenericStructValue &operator=(const QOpcUaGenericStructValue &rhs)
bool operator!=(const QOpcUaGenericStructValue &lhs, const QOpcUaGenericStructValue &rhs)
QDebug operator<<(QDebug debug, const QOpcUaGenericStructValue &s)
bool operator==(const QOpcUaGenericStructValue &lhs, const QOpcUaGenericStructValue &rhs)

Detailed Description

This class holds a generic OPC UA struct value which consists of named fields with their values which can be built-in types or their sub types as well as other nested generic structs. Some meta information like the type ID and the structure definition of the type contained in an object of this class is also included.

It is used as return type for the decoding result and as input type for the encoding method of QOpcUaGenericStructHandler.

For a struct with optional fields, only the fields that were specified are contained in the fields() list. To omit an optional field during encoding, it must not appear in the fields() list. For structs derived from the Union type, only one of the fields must be specified. The only entry in the fields() list of a decoded type determines which field (if any) of the type definition was specified.

Example:

 // Decode an extension object
 QOpcUaGenericStructValue value = decoder.decode(extensionObject, success);

 // Print the value of a mandatory field
 qDebug() << value.fields().value("MyField").value<QOpcUaLocalizedText>();

 // Print the value of an optional field
 if (value.fields().contains("MyOptionalField"))
     qDebug() << value.fields().value("MyField").value<QOpcUaQualifiedName>();

 // Get a nested struct for a field
 const auto unionMember = value.fields().value("MyUnionMember").value<QOpcUaGenericStructValue>();

 // Print the specified field
 if (unionMember.fields().contains("UnionMember1"))
     qDebug() << unionMember.fields().value("UnionMember1").toInt();
 else if (unionMember.fields().contains("UnionMember2"))
     qDebug() << unionMember.fields().value("UnionMember2").toDouble();
 else
     qDebug() << "Empty union";

Member Function Documentation

QOpcUaGenericStructValue::QOpcUaGenericStructValue()

Constructs a generic struct value.

QOpcUaGenericStructValue::QOpcUaGenericStructValue(const QString &typeName, const QString &typeId, const QOpcUaStructureDefinition &definition)

Constructs a generic struct value from typeName, typeId and definition.

QOpcUaGenericStructValue::QOpcUaGenericStructValue(const QString &typeName, const QString &typeId, const QOpcUaStructureDefinition &definition, const QHash<QString, QVariant> &fields)

Constructs a generic struct value from typeName, typeId, definition and fields.

QOpcUaGenericStructValue::QOpcUaGenericStructValue(const QOpcUaGenericStructValue &other)

Constructs a generic struct value from other.

[noexcept] QOpcUaGenericStructValue::QOpcUaGenericStructValue(QOpcUaGenericStructValue &&other)

Move-constructs a new generic struct value from other.

Note: The moved-from object other is placed in a partially-formed state, in which the only valid operations are destruction and assignment of a new value.

[noexcept] QOpcUaGenericStructValue::~QOpcUaGenericStructValue()

Destroys this generic struct value object.

QHash<QString, QVariant> QOpcUaGenericStructValue::fields() const

Returns the fields of this generic struct value.

See also setFields().

QHash<QString, QVariant> &QOpcUaGenericStructValue::fieldsRef()

Returns a reference to the fields of this generic struct value.

void QOpcUaGenericStructValue::setFields(const QHash<QString, QVariant> &fields)

Sets the fields of this generic struct value to fields.

See also fields().

void QOpcUaGenericStructValue::setStructureDefinition(const QOpcUaStructureDefinition &structureDefinition)

Sets the structure definition for this generic struct value to structureDefinition.

See also structureDefinition().

void QOpcUaGenericStructValue::setTypeId(const QString &typeId)

Sets the type node id for this generic struct value to typeId.

See also typeId().

void QOpcUaGenericStructValue::setTypeName(const QString &typeName)

Sets the type name for this generic struct value to typeName.

See also typeName().

QOpcUaStructureDefinition QOpcUaGenericStructValue::structureDefinition() const

Returns the structure definition for this generic struct value.

See also setStructureDefinition().

[noexcept] void QOpcUaGenericStructValue::swap(QOpcUaGenericStructValue &other)

Swaps generic struct value object other with this generic struct value object. This operation is very fast and never fails.

QString QOpcUaGenericStructValue::toString() const

Returns a string representation for this generic struct value.

QString QOpcUaGenericStructValue::typeId() const

Returns the type node id for this generic struct value.

See also setTypeId().

QString QOpcUaGenericStructValue::typeName() const

Returns the type name for this generic struct value.

See also setTypeName().

QVariant QOpcUaGenericStructValue::operator QVariant() const

Returns a QVariant containing this generic struct value.

[noexcept] QOpcUaGenericStructValue &QOpcUaGenericStructValue::operator=(QOpcUaGenericStructValue &&other)

Move-assigns other to this QOpcUaGenericStructValue instance.

Note: The moved-from object other is placed in a partially-formed state, in which the only valid operations are destruction and assignment of a new value.

QOpcUaGenericStructValue &QOpcUaGenericStructValue::operator=(const QOpcUaGenericStructValue &rhs)

Sets the value of rhs in this generic struct value.

Related Non-Members

[noexcept] bool operator!=(const QOpcUaGenericStructValue &lhs, const QOpcUaGenericStructValue &rhs)

Returns true if lhs is not equal to rhs.

QDebug operator<<(QDebug debug, const QOpcUaGenericStructValue &s)

Outputs the string representation of s into debug.

[noexcept] bool operator==(const QOpcUaGenericStructValue &lhs, const QOpcUaGenericStructValue &rhs)

Returns true if lhs is equal to rhs.