1// Copyright (C) 2019 The Qt Company Ltd.
2// Copyright (C) 2015 basysKom GmbH, opensource@basyskom.com
3// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
4
5#include "qopcuaapplicationdescription.h"
6
7QT_BEGIN_NAMESPACE
8
9/*!
10 \class QOpcUaApplicationDescription
11 \inmodule QtOpcUa
12 \brief The OPC UA ApplicationDescription.
13
14 The application description contains information about an OPC UA application.
15*/
16
17/*!
18 \qmltype ApplicationDescription
19 \inqmlmodule QtOpcUa
20 \brief The OPC UA ApplicationDescription.
21 \since QtOpcUa 5.13
22 \deprecated [6.9]
23
24 The application description contains information about an OPC UA application.
25*/
26
27/*!
28 \enum QOpcUaApplicationDescription::ApplicationType
29
30 This enum type holds the application type.
31
32 \value Server This application is a server.
33 \value Client This application is a client.
34 \value ClientAndServer This application is a client and a server.
35 \value DiscoveryServer This application is a discovery server.
36*/
37
38/*!
39 \qmlproperty enumeration ApplicationDescription::ApplicationType
40
41 The application type.
42
43 \value Server This application is a server.
44 \value Client This application is a client.
45 \value ClientAndServer This application is a client and a server.
46 \value DiscoveryServer This application is a discovery server.
47*/
48
49/*!
50 \property QOpcUaApplicationDescription::applicationName
51
52 Name describing the application.
53 */
54
55/*!
56 \qmlproperty LocalizedText ApplicationDescription::applicationName
57
58 Name describing the application.
59 */
60
61/*!
62 \property QOpcUaApplicationDescription::applicationType
63
64 The application's type: server, client, both, or discovery server.
65 */
66
67/*!
68 \qmlproperty ApplicationType ApplicationDescription::applicationType
69
70 The application's type: server, client, both, or discovery server.
71 */
72
73/*!
74 \property QOpcUaApplicationDescription::applicationUri
75
76 The globally unique identifier for this application instance.
77 */
78
79/*!
80 \qmlproperty string ApplicationDescription::applicationUri
81
82 The globally unique identifier for this application instance.
83 */
84
85/*!
86 \property QOpcUaApplicationDescription::discoveryProfileUri
87
88 The URI of the supported discovery profile.
89 */
90
91/*!
92 \qmlproperty string ApplicationDescription::discoveryProfileUri
93
94 The URI of the supported discovery profile.
95 */
96
97/*!
98 \property QOpcUaApplicationDescription::discoveryUrls
99
100 A list of URLs of discovery endpoints.
101 */
102
103/*!
104 \qmlproperty list ApplicationDescription::discoveryUrls
105
106 A list of URLs of discovery endpoints.
107 */
108
109/*!
110 \property QOpcUaApplicationDescription::gatewayServerUri
111
112 The URI of the gateway server.
113 */
114
115/*!
116 \qmlproperty string ApplicationDescription::gatewayServerUri
117
118 The URI of the gateway server.
119 */
120
121/*!
122 \property QOpcUaApplicationDescription::productUri
123
124 The globally unique identifier for this product.
125 */
126
127/*!
128 \qmlproperty string ApplicationDescription::productUri
129
130 The globally unique identifier for this product.
131 */
132
133class QOpcUaApplicationDescriptionData : public QSharedData
134{
135public:
136 QString applicationUri;
137 QString productUri;
138 QOpcUaLocalizedText applicationName;
139 QOpcUaApplicationDescription::ApplicationType applicationType{QOpcUaApplicationDescription::ApplicationType::Server};
140 QString gatewayServerUri;
141 QString discoveryProfileUri;
142 QList<QString> discoveryUrls;
143};
144
145/*!
146 Default constructs an application description with no parameters set.
147*/
148QOpcUaApplicationDescription::QOpcUaApplicationDescription()
149 : data(new QOpcUaApplicationDescriptionData)
150{
151}
152
153/*!
154 Constructs an application description from \a other.
155*/
156QOpcUaApplicationDescription::QOpcUaApplicationDescription(const QOpcUaApplicationDescription &other)
157 : data(other.data)
158{
159}
160
161/*!
162 Sets the values from \a other in this application description.
163*/
164QOpcUaApplicationDescription &QOpcUaApplicationDescription::operator=(const QOpcUaApplicationDescription &other)
165{
166 this->data = other.data;
167 return *this;
168}
169
170/*!
171 Returns \c true if this application description has the same value as \a rhs.
172*/
173bool QOpcUaApplicationDescription::operator==(const QOpcUaApplicationDescription &rhs) const
174{
175 return rhs.productUri() == productUri() &&
176 rhs.discoveryUrls() == discoveryUrls() &&
177 rhs.applicationUri() == applicationUri() &&
178 rhs.applicationName() == applicationName() &&
179 rhs.applicationType() == applicationType() &&
180 rhs.gatewayServerUri() == gatewayServerUri() &&
181 rhs.discoveryProfileUri() == rhs.discoveryProfileUri();
182}
183
184QOpcUaApplicationDescription::~QOpcUaApplicationDescription()
185{
186}
187
188/*!
189 Returns a list of URLs of discovery endpoints.
190*/
191QList<QString> QOpcUaApplicationDescription::discoveryUrls() const
192{
193 return data->discoveryUrls;
194}
195
196/*!
197 Returns a reference to a list of URLs of discovery endpoints.
198*/
199QList<QString> &QOpcUaApplicationDescription::discoveryUrlsRef()
200{
201 return data->discoveryUrls;
202}
203
204/*!
205 Sets the discovery URLs to \a discoveryUrls.
206*/
207void QOpcUaApplicationDescription::setDiscoveryUrls(const QList<QString> &discoveryUrls)
208{
209 data->discoveryUrls = discoveryUrls;
210}
211
212/*!
213 Returns the URI of the supported discovery profile.
214*/
215QString QOpcUaApplicationDescription::discoveryProfileUri() const
216{
217 return data->discoveryProfileUri;
218}
219
220/*!
221 Sets the discovery profile URI to \a discoveryProfileUri.
222*/
223void QOpcUaApplicationDescription::setDiscoveryProfileUri(const QString &discoveryProfileUri)
224{
225 data->discoveryProfileUri = discoveryProfileUri;
226}
227
228/*!
229 Returns the URI of the gateway server.
230*/
231QString QOpcUaApplicationDescription::gatewayServerUri() const
232{
233 return data->gatewayServerUri;
234}
235
236/*!
237 Sets the URI of the gateway server to \a gatewayServerUri.
238*/
239void QOpcUaApplicationDescription::setGatewayServerUri(const QString &gatewayServerUri)
240{
241 data->gatewayServerUri = gatewayServerUri;
242}
243
244/*!
245 Returns the application's type (server, client, both, discovery server).
246*/
247QOpcUaApplicationDescription::ApplicationType QOpcUaApplicationDescription::applicationType() const
248{
249 return data->applicationType;
250}
251
252/*!
253 Sets the application type to \a applicationType.
254*/
255void QOpcUaApplicationDescription::setApplicationType(ApplicationType applicationType)
256{
257 data->applicationType = applicationType;
258}
259
260/*!
261 Returns a name describing the application.
262*/
263QOpcUaLocalizedText QOpcUaApplicationDescription::applicationName() const
264{
265 return data->applicationName;
266}
267
268/*!
269 Sets the application name to \a applicationName.
270*/
271void QOpcUaApplicationDescription::setApplicationName(const QOpcUaLocalizedText &applicationName)
272{
273 data->applicationName = applicationName;
274}
275
276/*!
277 Returns the globally unique identifier for this product.
278*/
279QString QOpcUaApplicationDescription::productUri() const
280{
281 return data->productUri;
282}
283
284/*!
285 Sets the globally unique identifier for this product to \a productUri.
286*/
287void QOpcUaApplicationDescription::setProductUri(const QString &productUri)
288{
289 data->productUri = productUri;
290}
291
292/*!
293 Returns the globally unique identifier for this application instance.
294*/
295QString QOpcUaApplicationDescription::applicationUri() const
296{
297 return data->applicationUri;
298}
299
300/*!
301 Sets the globally unique identifier for this application instance to \a applicationUri.
302*/
303void QOpcUaApplicationDescription::setApplicationUri(const QString &applicationUri)
304{
305 data->applicationUri = applicationUri;
306}
307
308QT_END_NAMESPACE
309

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