diff options
author | Jannis Voelker <jannis.voelker@basyskom.com> | 2024-01-10 14:01:10 +0100 |
---|---|---|
committer | Jannis Voelker <jannis.voelker@basyskom.com> | 2024-01-26 13:50:24 +0100 |
commit | 497d58cb0589124160a1167764138eeee9edcbb4 (patch) | |
tree | dd572c05934da06203712d9f0bf27977c5ca78d8 | |
parent | abbd8b9e0d0dec8bcfe020f31f54e41544e8d1b4 (diff) |
Apply changes from the API review 6.6 => 6.7
- Always use QExplicitlySharedDataPointer
- Q_DECLARE_METATYPE is no longer required
- Apply Q_DECLARE_SHARED
Change-Id: Id30e0b20cab5ce1edc9818587cc65e5031326a9a
Pick-to: 6.7
Reviewed-by: Marc Mutz <marc.mutz@qt.io>
Reviewed-by: Frank Meerkoetter <frank.meerkoetter@basyskom.com>
-rw-r--r-- | src/opcua/client/qopcuadiagnosticinfo.cpp | 76 | ||||
-rw-r--r-- | src/opcua/client/qopcuadiagnosticinfo.h | 8 | ||||
-rw-r--r-- | src/opcua/client/qopcuaenumdefinition.cpp | 7 | ||||
-rw-r--r-- | src/opcua/client/qopcuaenumdefinition.h | 8 | ||||
-rw-r--r-- | src/opcua/client/qopcuaenumfield.cpp | 22 | ||||
-rw-r--r-- | src/opcua/client/qopcuaenumfield.h | 8 | ||||
-rw-r--r-- | src/opcua/client/qopcuagenericstructvalue.cpp | 22 | ||||
-rw-r--r-- | src/opcua/client/qopcuagenericstructvalue.h | 8 | ||||
-rw-r--r-- | src/opcua/client/qopcuahistoryevent.cpp | 14 | ||||
-rw-r--r-- | src/opcua/client/qopcuahistoryevent.h | 4 | ||||
-rw-r--r-- | src/opcua/client/qopcuastructuredefinition.cpp | 22 | ||||
-rw-r--r-- | src/opcua/client/qopcuastructuredefinition.h | 8 | ||||
-rw-r--r-- | src/opcua/client/qopcuavariant.cpp | 20 | ||||
-rw-r--r-- | src/opcua/client/qopcuavariant.h | 6 |
14 files changed, 159 insertions, 74 deletions
diff --git a/src/opcua/client/qopcuadiagnosticinfo.cpp b/src/opcua/client/qopcuadiagnosticinfo.cpp index 08e0f8e..4d84894 100644 --- a/src/opcua/client/qopcuadiagnosticinfo.cpp +++ b/src/opcua/client/qopcuadiagnosticinfo.cpp @@ -37,7 +37,7 @@ public: bool hasInnerDiagnosticInfo = false; }; -QT_DEFINE_QSDP_SPECIALIZATION_DTOR(QOpcUaDiagnosticInfoData) +QT_DEFINE_QESDP_SPECIALIZATION_DTOR(QOpcUaDiagnosticInfoData) /*! Constructs a diagnostic info. @@ -166,7 +166,10 @@ qint32 QOpcUaDiagnosticInfo::symbolicId() const */ void QOpcUaDiagnosticInfo::setSymbolicId(qint32 newSymbolicId) { - data->symbolicId = newSymbolicId; + if (newSymbolicId != data->symbolicId) { + data.detach(); + data->symbolicId = newSymbolicId; + } } /*! @@ -182,7 +185,10 @@ bool QOpcUaDiagnosticInfo::hasSymbolicId() const */ void QOpcUaDiagnosticInfo::setHasSymbolicId(bool newHasSymbolicId) { - data->hasSymbolicId = newHasSymbolicId; + if (newHasSymbolicId != data->hasSymbolicId) { + data.detach(); + data->hasSymbolicId = newHasSymbolicId; + } } /*! @@ -198,7 +204,10 @@ qint32 QOpcUaDiagnosticInfo::namespaceUri() const */ void QOpcUaDiagnosticInfo::setNamespaceUri(qint32 newNamespaceUri) { - data->namespaceUri = newNamespaceUri; + if (newNamespaceUri != data->namespaceUri) { + data.detach(); + data->namespaceUri = newNamespaceUri; + } } /*! @@ -214,7 +223,10 @@ bool QOpcUaDiagnosticInfo::hasNamespaceUri() const */ void QOpcUaDiagnosticInfo::setHasNamespaceUri(bool newHasNamespaceUri) { - data->hasNamespaceUri = newHasNamespaceUri; + if (newHasNamespaceUri != data->hasNamespaceUri) { + data.detach(); + data->hasNamespaceUri = newHasNamespaceUri; + } } /*! @@ -230,7 +242,10 @@ qint32 QOpcUaDiagnosticInfo::locale() const */ void QOpcUaDiagnosticInfo::setLocale(qint32 newLocale) { - data->locale = newLocale; + if (newLocale != data->locale) { + data.detach(); + data->locale = newLocale; + } } /*! @@ -246,7 +261,10 @@ bool QOpcUaDiagnosticInfo::hasLocale() const */ void QOpcUaDiagnosticInfo::setHasLocale(bool newHasLocale) { - data->hasLocale = newHasLocale; + if (newHasLocale != data->hasLocale) { + data.detach(); + data->hasLocale = newHasLocale; + } } /*! @@ -262,7 +280,10 @@ qint32 QOpcUaDiagnosticInfo::localizedText() const */ void QOpcUaDiagnosticInfo::setLocalizedText(qint32 newLocalizedText) { - data->localizedText = newLocalizedText; + if (newLocalizedText != data->localizedText) { + data.detach(); + data->localizedText = newLocalizedText; + } } /*! @@ -278,7 +299,10 @@ bool QOpcUaDiagnosticInfo::hasLocalizedText() const */ void QOpcUaDiagnosticInfo::setHasLocalizedText(bool newHasLocalizedText) { - data->hasLocalizedText = newHasLocalizedText; + if (newHasLocalizedText != data->hasLocalizedText) { + data.detach(); + data->hasLocalizedText = newHasLocalizedText; + } } /*! @@ -294,7 +318,10 @@ QString QOpcUaDiagnosticInfo::additionalInfo() const */ void QOpcUaDiagnosticInfo::setAdditionalInfo(const QString &newAdditionalInfo) { - data->additionalInfo = newAdditionalInfo; + if (newAdditionalInfo != data->additionalInfo) { + data.detach(); + data->additionalInfo = newAdditionalInfo; + } } /*! @@ -310,7 +337,10 @@ bool QOpcUaDiagnosticInfo::hasAdditionalInfo() const */ void QOpcUaDiagnosticInfo::setHasAdditionalInfo(bool newHasAdditionalInfo) { - data->hasAdditionalInfo = newHasAdditionalInfo; + if (newHasAdditionalInfo != data->hasAdditionalInfo) { + data.detach(); + data->hasAdditionalInfo = newHasAdditionalInfo; + } } /*! @@ -326,7 +356,10 @@ QOpcUa::UaStatusCode QOpcUaDiagnosticInfo::innerStatusCode() const */ void QOpcUaDiagnosticInfo::setInnerStatusCode(QOpcUa::UaStatusCode newInnerStatusCode) { - data->innerStatusCode = newInnerStatusCode; + if (newInnerStatusCode != data->innerStatusCode) { + data.detach(); + data->innerStatusCode = newInnerStatusCode; + } } /*! @@ -342,7 +375,10 @@ bool QOpcUaDiagnosticInfo::hasInnerStatusCode() const */ void QOpcUaDiagnosticInfo::setHasInnerStatusCode(bool newHasInnerStatusCode) { - data->hasInnerStatusCode = newHasInnerStatusCode; + if (newHasInnerStatusCode != data->hasInnerStatusCode) { + data.detach(); + data->hasInnerStatusCode = newHasInnerStatusCode; + } } /*! @@ -358,8 +394,10 @@ QOpcUaDiagnosticInfo QOpcUaDiagnosticInfo::innerDiagnosticInfo() const */ QOpcUaDiagnosticInfo &QOpcUaDiagnosticInfo::innerDiagnosticInfoRef() { - if (!data->innerDiagnosticInfo.has_value()) + if (!data->innerDiagnosticInfo.has_value()) { + data.detach(); data->innerDiagnosticInfo = QOpcUaDiagnosticInfo(); + } return data->innerDiagnosticInfo.value(); } @@ -369,7 +407,10 @@ QOpcUaDiagnosticInfo &QOpcUaDiagnosticInfo::innerDiagnosticInfoRef() */ void QOpcUaDiagnosticInfo::setInnerDiagnosticInfo(const QOpcUaDiagnosticInfo &newInnerDiagnosticInfo) { - data->innerDiagnosticInfo = newInnerDiagnosticInfo; + if (newInnerDiagnosticInfo != data->innerDiagnosticInfo) { + data.detach(); + data->innerDiagnosticInfo = newInnerDiagnosticInfo; + } } /*! @@ -385,7 +426,10 @@ bool QOpcUaDiagnosticInfo::hasInnerDiagnosticInfo() const */ void QOpcUaDiagnosticInfo::setHasInnerDiagnosticInfo(bool newHasInnerDiagnosticInfo) { - data->hasInnerDiagnosticInfo = newHasInnerDiagnosticInfo; + if (newHasInnerDiagnosticInfo != data->hasInnerDiagnosticInfo) { + data.detach(); + data->hasInnerDiagnosticInfo = newHasInnerDiagnosticInfo; + } } QT_END_NAMESPACE diff --git a/src/opcua/client/qopcuadiagnosticinfo.h b/src/opcua/client/qopcuadiagnosticinfo.h index 4cc53b7..11e0e7f 100644 --- a/src/opcua/client/qopcuadiagnosticinfo.h +++ b/src/opcua/client/qopcuadiagnosticinfo.h @@ -11,7 +11,7 @@ QT_BEGIN_NAMESPACE class QOpcUaDiagnosticInfoData; -QT_DECLARE_QSDP_SPECIALIZATION_DTOR_WITH_EXPORT(QOpcUaDiagnosticInfoData, Q_OPCUA_EXPORT) +QT_DECLARE_QESDP_SPECIALIZATION_DTOR_WITH_EXPORT(QOpcUaDiagnosticInfoData, Q_OPCUA_EXPORT) class QOpcUaDiagnosticInfo { public: Q_OPCUA_EXPORT QOpcUaDiagnosticInfo(); @@ -74,11 +74,11 @@ public: Q_OPCUA_EXPORT void setHasInnerDiagnosticInfo(bool newHasInnerDiagnosticInfo); private: - QSharedDataPointer<QOpcUaDiagnosticInfoData> data; + QExplicitlySharedDataPointer<QOpcUaDiagnosticInfoData> data; }; -QT_END_NAMESPACE +Q_DECLARE_SHARED(QOpcUaDiagnosticInfo) -Q_DECLARE_METATYPE(QOpcUaDiagnosticInfo) +QT_END_NAMESPACE #endif // QOPCUADIAGNOSTICINFO_H diff --git a/src/opcua/client/qopcuaenumdefinition.cpp b/src/opcua/client/qopcuaenumdefinition.cpp index e6fae1b..0679744 100644 --- a/src/opcua/client/qopcuaenumdefinition.cpp +++ b/src/opcua/client/qopcuaenumdefinition.cpp @@ -21,7 +21,7 @@ public: QList<QOpcUaEnumField> fields; }; -QT_DEFINE_QSDP_SPECIALIZATION_DTOR(QOpcUaEnumDefinitionData); +QT_DEFINE_QESDP_SPECIALIZATION_DTOR(QOpcUaEnumDefinitionData); /*! Default constructs an enum definition with no parameters set. @@ -120,7 +120,10 @@ QList<QOpcUaEnumField> QOpcUaEnumDefinition::fields() const */ void QOpcUaEnumDefinition::setFields(const QList<QOpcUaEnumField> &fields) { - data->fields = fields; + if (fields != data->fields) { + data.detach(); + data->fields = fields; + } } QT_END_NAMESPACE diff --git a/src/opcua/client/qopcuaenumdefinition.h b/src/opcua/client/qopcuaenumdefinition.h index 0e27cab..cf9bb57 100644 --- a/src/opcua/client/qopcuaenumdefinition.h +++ b/src/opcua/client/qopcuaenumdefinition.h @@ -14,7 +14,7 @@ QT_BEGIN_NAMESPACE class QOpcUaEnumDefinitionData; -QT_DECLARE_QSDP_SPECIALIZATION_DTOR_WITH_EXPORT(QOpcUaEnumDefinitionData, Q_OPCUA_EXPORT) +QT_DECLARE_QESDP_SPECIALIZATION_DTOR_WITH_EXPORT(QOpcUaEnumDefinitionData, Q_OPCUA_EXPORT) class QOpcUaEnumDefinition { @@ -38,11 +38,11 @@ public: Q_OPCUA_EXPORT void setFields(const QList<QOpcUaEnumField> &fields); private: - QSharedDataPointer<QOpcUaEnumDefinitionData> data; + QExplicitlySharedDataPointer<QOpcUaEnumDefinitionData> data; }; -QT_END_NAMESPACE +Q_DECLARE_SHARED(QOpcUaEnumDefinition) -Q_DECLARE_METATYPE(QOpcUaEnumDefinition) +QT_END_NAMESPACE #endif // QOPCUAENUMDEFINITION_H diff --git a/src/opcua/client/qopcuaenumfield.cpp b/src/opcua/client/qopcuaenumfield.cpp index a1db84a..e8dc290 100644 --- a/src/opcua/client/qopcuaenumfield.cpp +++ b/src/opcua/client/qopcuaenumfield.cpp @@ -24,7 +24,7 @@ public: QString name; }; -QT_DEFINE_QSDP_SPECIALIZATION_DTOR(QOpcUaEnumFieldData); +QT_DEFINE_QESDP_SPECIALIZATION_DTOR(QOpcUaEnumFieldData); /*! Default constructs an enum field with no parameters set. @@ -123,7 +123,10 @@ qint64 QOpcUaEnumField::value() const */ void QOpcUaEnumField::setValue(qint64 value) { - data->value = value; + if (value != data->value) { + data.detach(); + data->value = value; + } } /*! @@ -139,7 +142,10 @@ QOpcUaLocalizedText QOpcUaEnumField::displayName() const */ void QOpcUaEnumField::setDisplayName(const QOpcUaLocalizedText &displayName) { - data->displayName = displayName; + if (!(displayName == data->displayName)) { + data.detach(); + data->displayName = displayName; + } } /*! @@ -155,7 +161,10 @@ QOpcUaLocalizedText QOpcUaEnumField::description() const */ void QOpcUaEnumField::setDescription(const QOpcUaLocalizedText &description) { - data->description = description; + if (!(description == data->description)) { + data.detach(); + data->description = description; + } } /*! @@ -171,7 +180,10 @@ QString QOpcUaEnumField::name() const */ void QOpcUaEnumField::setName(const QString &name) { - data->name = name; + if (name != data->name) { + data.detach(); + data->name = name; + } } QT_END_NAMESPACE diff --git a/src/opcua/client/qopcuaenumfield.h b/src/opcua/client/qopcuaenumfield.h index 3b1ad29..fb7cb4d 100644 --- a/src/opcua/client/qopcuaenumfield.h +++ b/src/opcua/client/qopcuaenumfield.h @@ -14,7 +14,7 @@ QT_BEGIN_NAMESPACE class QOpcUaEnumFieldData; -QT_DECLARE_QSDP_SPECIALIZATION_DTOR_WITH_EXPORT(QOpcUaEnumFieldData, Q_OPCUA_EXPORT) +QT_DECLARE_QESDP_SPECIALIZATION_DTOR_WITH_EXPORT(QOpcUaEnumFieldData, Q_OPCUA_EXPORT) class QOpcUaEnumField { @@ -48,11 +48,11 @@ public: Q_OPCUA_EXPORT void setName(const QString &name); private: - QSharedDataPointer<QOpcUaEnumFieldData> data; + QExplicitlySharedDataPointer<QOpcUaEnumFieldData> data; }; -QT_END_NAMESPACE +Q_DECLARE_SHARED(QOpcUaEnumField) -Q_DECLARE_METATYPE(QOpcUaEnumField) +QT_END_NAMESPACE #endif // QOPCUAENUMFIELD_H diff --git a/src/opcua/client/qopcuagenericstructvalue.cpp b/src/opcua/client/qopcuagenericstructvalue.cpp index 3062d0c..9033dc5 100644 --- a/src/opcua/client/qopcuagenericstructvalue.cpp +++ b/src/opcua/client/qopcuagenericstructvalue.cpp @@ -69,7 +69,7 @@ public: QHash<QString, QVariant> fields; }; -QT_DEFINE_QSDP_SPECIALIZATION_DTOR(QOpcUaGenericStructValueData) +QT_DEFINE_QESDP_SPECIALIZATION_DTOR(QOpcUaGenericStructValueData) /*! Constructs a generic struct value. @@ -179,7 +179,10 @@ QString QOpcUaGenericStructValue::typeName() const */ void QOpcUaGenericStructValue::setTypeName(const QString &typeName) { - data->typeName = typeName; + if (typeName != data->typeName) { + data.detach(); + data->typeName = typeName; + } } /*! @@ -195,7 +198,10 @@ QString QOpcUaGenericStructValue::typeId() const */ void QOpcUaGenericStructValue::setTypeId(const QString &typeId) { - data->typeId = typeId; + if (typeId != data->typeId) { + data.detach(); + data->typeId = typeId; + } } /*! @@ -211,7 +217,10 @@ QOpcUaStructureDefinition QOpcUaGenericStructValue::structureDefinition() const */ void QOpcUaGenericStructValue::setStructureDefinition(const QOpcUaStructureDefinition &structureDefinition) { - data->structureDefinition = structureDefinition; + if (structureDefinition != data->structureDefinition) { + data.detach(); + data->structureDefinition = structureDefinition; + } } /*! @@ -235,7 +244,10 @@ QHash<QString, QVariant> &QOpcUaGenericStructValue::fieldsRef() */ void QOpcUaGenericStructValue::setFields(const QHash<QString, QVariant> &fields) { - data->fields = fields; + if (fields != data->fields) { + data.detach(); + data->fields = fields; + } } /*! diff --git a/src/opcua/client/qopcuagenericstructvalue.h b/src/opcua/client/qopcuagenericstructvalue.h index cf0a11c..24a0f64 100644 --- a/src/opcua/client/qopcuagenericstructvalue.h +++ b/src/opcua/client/qopcuagenericstructvalue.h @@ -12,7 +12,7 @@ QT_BEGIN_NAMESPACE class QOpcUaGenericStructValueData; -QT_DECLARE_QSDP_SPECIALIZATION_DTOR_WITH_EXPORT(QOpcUaGenericStructValueData, Q_OPCUA_EXPORT) +QT_DECLARE_QESDP_SPECIALIZATION_DTOR_WITH_EXPORT(QOpcUaGenericStructValueData, Q_OPCUA_EXPORT) class QOpcUaGenericStructValue { public: Q_OPCUA_EXPORT QOpcUaGenericStructValue(); @@ -51,11 +51,11 @@ public: friend QDebug Q_OPCUA_EXPORT operator<<(QDebug debug, const QOpcUaGenericStructValue &s); private: - QSharedDataPointer<QOpcUaGenericStructValueData> data; + QExplicitlySharedDataPointer<QOpcUaGenericStructValueData> data; }; -QT_END_NAMESPACE +Q_DECLARE_SHARED(QOpcUaGenericStructValue) -Q_DECLARE_METATYPE(QOpcUaGenericStructValue) +QT_END_NAMESPACE #endif // QOPCUAGENERICSTRUCTVALUE_H diff --git a/src/opcua/client/qopcuahistoryevent.cpp b/src/opcua/client/qopcuahistoryevent.cpp index da58994..9ed7496 100644 --- a/src/opcua/client/qopcuahistoryevent.cpp +++ b/src/opcua/client/qopcuahistoryevent.cpp @@ -26,7 +26,7 @@ public: QString nodeId; }; -QT_DEFINE_QSDP_SPECIALIZATION_DTOR(QOpcUaHistoryEventData) +QT_DEFINE_QESDP_SPECIALIZATION_DTOR(QOpcUaHistoryEventData) /*! Constructs an invalid history event item. @@ -102,8 +102,10 @@ QOpcUa::UaStatusCode QOpcUaHistoryEvent::statusCode() const */ void QOpcUaHistoryEvent::setStatusCode(QOpcUa::UaStatusCode statusCode) { - data.detach(); - data->statusCode = statusCode; + if (statusCode != data->statusCode) { + data.detach(); + data->statusCode = statusCode; + } } /*! @@ -144,8 +146,10 @@ QString QOpcUaHistoryEvent::nodeId() const */ void QOpcUaHistoryEvent::setNodeId(const QString &nodeId) { - data.detach(); - data->nodeId = nodeId; + if (nodeId != data->nodeId) { + data.detach(); + data->nodeId = nodeId; + } } /*! diff --git a/src/opcua/client/qopcuahistoryevent.h b/src/opcua/client/qopcuahistoryevent.h index 087c7c7..26f3bee 100644 --- a/src/opcua/client/qopcuahistoryevent.h +++ b/src/opcua/client/qopcuahistoryevent.h @@ -13,7 +13,7 @@ QT_BEGIN_NAMESPACE class QOpcUaHistoryEventData; -QT_DECLARE_QSDP_SPECIALIZATION_DTOR_WITH_EXPORT(QOpcUaHistoryEventData, Q_OPCUA_EXPORT) +QT_DECLARE_QESDP_SPECIALIZATION_DTOR_WITH_EXPORT(QOpcUaHistoryEventData, Q_OPCUA_EXPORT) class QOpcUaHistoryEvent { public: @@ -43,7 +43,7 @@ public: return !(lhs == rhs); } private: - QSharedDataPointer<QOpcUaHistoryEventData> data; + QExplicitlySharedDataPointer<QOpcUaHistoryEventData> data; }; Q_DECLARE_SHARED(QOpcUaHistoryEvent) diff --git a/src/opcua/client/qopcuastructuredefinition.cpp b/src/opcua/client/qopcuastructuredefinition.cpp index 71e46b0..c81dce9 100644 --- a/src/opcua/client/qopcuastructuredefinition.cpp +++ b/src/opcua/client/qopcuastructuredefinition.cpp @@ -24,7 +24,7 @@ public: QList<QOpcUaStructureField> fields; }; -QT_DEFINE_QSDP_SPECIALIZATION_DTOR(QOpcUaStructureDefinitionData); +QT_DEFINE_QESDP_SPECIALIZATION_DTOR(QOpcUaStructureDefinitionData); /*! Default constructs a structure definition with no parameters set. @@ -126,7 +126,10 @@ QString QOpcUaStructureDefinition::defaultEncodingId() const */ void QOpcUaStructureDefinition::setDefaultEncodingId(const QString &defaultEncodingId) { - data->defaultEncodingId = defaultEncodingId; + if (defaultEncodingId != data->defaultEncodingId) { + data.detach(); + data->defaultEncodingId = defaultEncodingId; + } } /*! @@ -142,7 +145,10 @@ QString QOpcUaStructureDefinition::baseDataType() const */ void QOpcUaStructureDefinition::setBaseDataType(const QString &baseDataType) { - data->baseDataType = baseDataType; + if (baseDataType != data->baseDataType) { + data.detach(); + data->baseDataType = baseDataType; + } } /*! @@ -158,7 +164,10 @@ QOpcUaStructureDefinition::StructureType QOpcUaStructureDefinition::structureTyp */ void QOpcUaStructureDefinition::setStructureType(const QOpcUaStructureDefinition::StructureType &structureType) { - data->structureType = structureType; + if (structureType != data->structureType) { + data.detach(); + data->structureType = structureType; + } } /*! @@ -174,7 +183,10 @@ QList<QOpcUaStructureField> QOpcUaStructureDefinition::fields() const */ void QOpcUaStructureDefinition::setFields(const QList<QOpcUaStructureField> &fields) { - data->fields = fields; + if (fields != data->fields) { + data.detach(); + data->fields = fields; + } } QT_END_NAMESPACE diff --git a/src/opcua/client/qopcuastructuredefinition.h b/src/opcua/client/qopcuastructuredefinition.h index 86ff29f..f64143c 100644 --- a/src/opcua/client/qopcuastructuredefinition.h +++ b/src/opcua/client/qopcuastructuredefinition.h @@ -14,7 +14,7 @@ QT_BEGIN_NAMESPACE class QOpcUaStructureDefinitionData; -QT_DECLARE_QSDP_SPECIALIZATION_DTOR_WITH_EXPORT(QOpcUaStructureDefinitionData, Q_OPCUA_EXPORT) +QT_DECLARE_QESDP_SPECIALIZATION_DTOR_WITH_EXPORT(QOpcUaStructureDefinitionData, Q_OPCUA_EXPORT) class QOpcUaStructureDefinition { @@ -53,11 +53,11 @@ public: Q_OPCUA_EXPORT void setFields(const QList<QOpcUaStructureField> &fields); private: - QSharedDataPointer<QOpcUaStructureDefinitionData> data; + QExplicitlySharedDataPointer<QOpcUaStructureDefinitionData> data; }; -QT_END_NAMESPACE +Q_DECLARE_SHARED(QOpcUaStructureDefinition) -Q_DECLARE_METATYPE(QOpcUaStructureDefinition) +QT_END_NAMESPACE #endif // QOPCUASTRUCTUREDEFINITION_H diff --git a/src/opcua/client/qopcuavariant.cpp b/src/opcua/client/qopcuavariant.cpp index 5f4c3b7..135cbae 100644 --- a/src/opcua/client/qopcuavariant.cpp +++ b/src/opcua/client/qopcuavariant.cpp @@ -16,7 +16,7 @@ public: bool isArray = false; }; -QT_DEFINE_QSDP_SPECIALIZATION_DTOR(QOpcUaVariantData) +QT_DEFINE_QESDP_SPECIALIZATION_DTOR(QOpcUaVariantData) /*! \class QOpcUaVariant @@ -123,12 +123,8 @@ QOpcUaVariant::QOpcUaVariant(const QVariant &value, ValueType type, bool isArray Constructs a new OPC UA variant from \a other. */ QOpcUaVariant::QOpcUaVariant(const QOpcUaVariant &other) - : data(new QOpcUaVariantData) + : data(other.data) { - data->value = other.data->value; - data->valueType = other.data->valueType; - data->arrayDimensions = other.data->arrayDimensions; - data->isArray = other.data->isArray; } /*! @@ -173,10 +169,14 @@ QVariant QOpcUaVariant::value() const */ void QOpcUaVariant::setValue(const QVariant &value, ValueType type, bool isArray, const QList<qint32> &arrayDimensions) { - data->value = value; - data->valueType = type; - data->isArray = isArray; - data->arrayDimensions = arrayDimensions; + if (value != data->value || type != data->valueType || isArray != data->isArray || + arrayDimensions != data->arrayDimensions) { + data.detach(); + data->value = value; + data->valueType = type; + data->isArray = isArray; + data->arrayDimensions = arrayDimensions; + } } /*! diff --git a/src/opcua/client/qopcuavariant.h b/src/opcua/client/qopcuavariant.h index 7037c2d..c094134 100644 --- a/src/opcua/client/qopcuavariant.h +++ b/src/opcua/client/qopcuavariant.h @@ -14,7 +14,7 @@ QT_BEGIN_NAMESPACE class QOpcUaVariantData; -QT_DECLARE_QSDP_SPECIALIZATION_DTOR_WITH_EXPORT(QOpcUaVariantData, Q_OPCUA_EXPORT) +QT_DECLARE_QESDP_SPECIALIZATION_DTOR_WITH_EXPORT(QOpcUaVariantData, Q_OPCUA_EXPORT) class QOpcUaVariant { @@ -75,13 +75,11 @@ public: Q_OPCUA_EXPORT operator QVariant() const; private: - QSharedDataPointer<QOpcUaVariantData> data; + QExplicitlySharedDataPointer<QOpcUaVariantData> data; }; Q_DECLARE_SHARED(QOpcUaVariant) QT_END_NAMESPACE -Q_DECLARE_METATYPE(QOpcUaVariant) - #endif // QOPCUAVARIANT_H |