1// Copyright (C) 2019 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#include "qopcuahistorydata.h"
5
6QT_BEGIN_NAMESPACE
7
8/*!
9 \class QOpcUaHistoryData
10 \inmodule QtOpcUa
11 \brief This class stores historical data values from a node.
12 \since 6.3
13
14 When a request to read history data is being handled, instances of this class
15 are used to store information about which node has been read, its values and
16 the status code.
17 The finished signal of a history read request will return a list of QOpcUaHistoryData
18 objects which can be parsed to review the results of the request.
19*/
20
21class QOpcUaHistoryDataData : public QSharedData
22{
23public:
24 QList<QOpcUaDataValue> result;
25 QOpcUa::UaStatusCode statusCode;
26 QString nodeId;
27};
28
29/*!
30 Constructs an invalid history data item.
31 */
32QOpcUaHistoryData::QOpcUaHistoryData()
33 : data(new QOpcUaHistoryDataData)
34{
35 data->statusCode = QOpcUa::UaStatusCode::Good;
36}
37
38/*!
39 Constructs a history data item and stores which node it corresponds to.
40*/
41QOpcUaHistoryData::QOpcUaHistoryData(const QString &nodeId)
42 : data(new QOpcUaHistoryDataData)
43{
44 data->statusCode = QOpcUa::UaStatusCode::Good;
45 data->nodeId = nodeId;
46}
47
48/*!
49 Constructs a history data item from \a other.
50*/
51QOpcUaHistoryData::QOpcUaHistoryData(const QOpcUaHistoryData &other)
52 : data(other.data)
53{
54}
55
56/*!
57 Destroys the history data item.
58 */
59QOpcUaHistoryData::~QOpcUaHistoryData()
60{
61}
62
63/*!
64 \fn QOpcUaHistoryData::swap(QOpcUaHistoryData &other)
65
66 Swaps this data value instance with \a other. This function is very
67 fast and never fails.
68 */
69
70/*!
71 Returns the status code which indicates if an error occurred while fetching the history data.
72*/
73QOpcUa::UaStatusCode QOpcUaHistoryData::statusCode() const
74{
75 return data->statusCode;
76}
77
78/*!
79 Sets the status code to \a statusCode.
80*/
81void QOpcUaHistoryData::setStatusCode(QOpcUa::UaStatusCode statusCode)
82{
83 data.detach();
84 data->statusCode = statusCode;
85}
86
87/*!
88 Returns the list of data value objects which contain the results of the history read request.
89*/
90QList<QOpcUaDataValue> QOpcUaHistoryData::result() const
91{
92 return data->result;
93}
94
95/*!
96 Returns the number of available data value objects.
97*/
98int QOpcUaHistoryData::count() const
99{
100 return data->result.size();
101}
102
103/*!
104 Adds a data value object given by \a value.
105*/
106void QOpcUaHistoryData::addValue(const QOpcUaDataValue &value)
107{
108 data.detach();
109 data->result.append(t: value);
110}
111
112/*!
113 Returns the nodeId of the node whose data has been stored.
114*/
115QString QOpcUaHistoryData::nodeId() const
116{
117 return data->nodeId;
118}
119
120/*!
121 Sets the nodeId to \a nodeId.
122*/
123void QOpcUaHistoryData::setNodeId(const QString &nodeId)
124{
125 data.detach();
126 data->nodeId = nodeId;
127}
128
129/*!
130 Sets the values from \a other in this history data item.
131*/
132QOpcUaHistoryData &QOpcUaHistoryData::operator=(const QOpcUaHistoryData &other)
133{
134 if (this != &other)
135 data.operator=(o: other.data);
136 return *this;
137}
138
139QT_END_NAMESPACE
140

source code of qtopcua/src/opcua/client/qopcuahistorydata.cpp