1// Copyright (C) 2015 basysKom GmbH, opensource@basyskom.com
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3
4#ifndef QOPCUAEXTENSIONOBJECT_H
5#define QOPCUAEXTENSIONOBJECT_H
6
7#include <QtOpcUa/qopcuaglobal.h>
8
9#include <QtCore/qshareddata.h>
10#include <QtCore/qvariant.h>
11
12QT_BEGIN_NAMESPACE
13
14class QOpcUaExtensionObjectData;
15class Q_OPCUA_EXPORT QOpcUaExtensionObject
16{
17public:
18 enum Encoding {
19 NoBody = 0,
20 ByteString = 1,
21 Xml = 2,
22 };
23
24 QOpcUaExtensionObject();
25 QOpcUaExtensionObject(const QOpcUaExtensionObject &);
26 explicit QOpcUaExtensionObject(const QString &typeId, Encoding encoding = Encoding::ByteString);
27 ~QOpcUaExtensionObject();
28 QOpcUaExtensionObject &operator=(const QOpcUaExtensionObject &);
29 bool operator==(const QOpcUaExtensionObject &rhs) const;
30 operator QVariant() const;
31
32 QString encodingTypeId() const;
33 void setEncodingTypeId(const QString &encodingTypeId);
34
35 QByteArray encodedBody() const;
36 QByteArray &encodedBodyRef();
37 void setEncodedBody(const QByteArray &encodedBody);
38
39 void setBinaryEncodedBody(const QByteArray &encodedBody, const QString &typeId);
40 void setXmlEncodedBody(const QByteArray &encodedBody, const QString &typeId);
41
42 QOpcUaExtensionObject::Encoding encoding() const;
43 void setEncoding(QOpcUaExtensionObject::Encoding encoding);
44
45private:
46 QSharedDataPointer<QOpcUaExtensionObjectData> data;
47};
48
49QT_END_NAMESPACE
50
51Q_DECLARE_METATYPE(QOpcUaExtensionObject)
52
53#endif // QOPCUAEXTENSIONOBJECT_H
54

source code of qtopcua/src/opcua/client/qopcuaextensionobject.h