4#include <initializer_list>
12#include "open62541pp/config.hpp"
24#ifndef UA_DEFAULT_ATTRIBUTES_DEFINED
25#define UA_DEFAULT_ATTRIBUTES_DEFINED
39#define UAPP_GETTER(Type, member) \
40 Type member() const noexcept { \
41 return handle()->member; \
44#define UAPP_GETTER_CAST(Type, member) \
45 Type member() const noexcept { \
46 return static_cast<Type>(handle()->member); \
49#define UAPP_GETTER_WRAPPER_CONST(Type, member) \
50 const Type& member() const noexcept { \
51 return asWrapper<Type>(handle()->member); \
53#define UAPP_GETTER_WRAPPER_NONCONST(Type, member) \
54 Type& member() noexcept { \
55 return asWrapper<Type>(handle()->member); \
57#define UAPP_GETTER_WRAPPER(Type, member) \
58 UAPP_GETTER_WRAPPER_CONST(Type, member) \
59 UAPP_GETTER_WRAPPER_NONCONST(Type, member)
61#define UAPP_GETTER_SPAN(Type, memberArray, memberSize) \
62 Span<const Type> memberArray() const noexcept { \
63 return {handle()->memberArray, handle()->memberSize}; \
65 Span<Type> memberArray() noexcept { \
66 return {handle()->memberArray, handle()->memberSize}; \
69#define UAPP_GETTER_SPAN_WRAPPER(Type, memberArray, memberSize) \
70 Span<const Type> memberArray() const noexcept { \
71 return {asWrapper<Type>(handle()->memberArray), handle()->memberSize}; \
73 Span<Type> memberArray() noexcept { \
74 return {asWrapper<Type>(handle()->memberArray), handle()->memberSize}; \
127 :
public WrapperNative<UA_ApplicationDescription, UA_TYPES_APPLICATIONDESCRIPTION> {
129 using Wrapper::Wrapper;
132 std::string_view applicationUri,
133 std::string_view productUri,
136 std::string_view gatewayServerUri,
137 std::string_view discoveryProfileUri,
140 handle()->applicationUri = detail::makeNative(applicationUri);
141 handle()->productUri = detail::makeNative(productUri);
142 handle()->applicationName = detail::makeNative(std::move(applicationName));
144 handle()->gatewayServerUri = detail::makeNative(gatewayServerUri);
145 handle()->discoveryProfileUri = detail::makeNative(discoveryProfileUri);
146 handle()->discoveryUrlsSize = discoveryUrls.
size();
147 handle()->discoveryUrls = detail::makeNativeArray(discoveryUrls);
165 using Wrapper::Wrapper;
168 NodeId authenticationToken,
171 uint32_t returnDiagnostics,
172 std::string_view auditEntryId,
173 uint32_t timeoutHint,
176 handle()->authenticationToken = detail::makeNative(std::move(authenticationToken));
177 handle()->timestamp = timestamp;
178 handle()->requestHandle = requestHandle;
179 handle()->returnDiagnostics = returnDiagnostics;
180 handle()->auditEntryId = detail::makeNative(auditEntryId);
181 handle()->timeoutHint = timeoutHint;
182 handle()->additionalHeader = detail::makeNative(std::move(additionalHeader));
200 using Wrapper::Wrapper;
243 using Wrapper::Wrapper;
246 std::string_view policyId,
248 std::string_view issuedTokenType,
249 std::string_view issuerEndpointUrl,
250 std::string_view securityPolicyUri
252 handle()->policyId = detail::makeNative(policyId);
254 handle()->issuedTokenType = detail::makeNative(issuedTokenType);
255 handle()->issuerEndpointUrl = detail::makeNative(issuerEndpointUrl);
256 handle()->securityPolicyUri = detail::makeNative(securityPolicyUri);
273 using Wrapper::Wrapper;
339#define UAPP_NODEATTR(Type, suffix, member, flag) \
340 UAPP_GETTER(Type, member) \
341 auto& set##suffix(Type member) noexcept { \
342 handle()->specifiedAttributes |= flag; \
343 handle()->member = member; \
346#define UAPP_NODEATTR_CAST(Type, suffix, member, flag) \
347 UAPP_GETTER_CAST(Type, member) \
348 auto& set##suffix(Type member) noexcept { \
349 handle()->specifiedAttributes |= flag; \
350 handle()->member = static_cast<decltype(handle()->member)>(member); \
353#define UAPP_NODEATTR_WRAPPER(Type, suffix, member, flag) \
354 UAPP_GETTER_WRAPPER_CONST(Type, member) \
355 auto& set##suffix(Type member) { \
356 handle()->specifiedAttributes |= flag; \
357 asWrapper<Type>(handle()->member) = std::move(member); \
360#define UAPP_NODEATTR_ARRAY(Type, suffix, member, memberSize, flag) \
361 UAPP_GETTER_SPAN(Type, member, memberSize) \
362 auto& set##suffix(Span<const Type> member) { \
363 const auto& dataType = opcua::getDataType<Type>(); \
364 handle()->specifiedAttributes |= flag; \
365 detail::deallocateArray(handle()->member, handle()->memberSize, dataType); \
366 handle()->member = detail::copyArray(member.data(), member.size(), dataType); \
367 handle()->memberSize = member.size(); \
370#define UAPP_NODEATTR_COMMON \
371 UAPP_GETTER(Bitmask<NodeAttributesMask>, specifiedAttributes) \
372 UAPP_NODEATTR_WRAPPER( \
373 LocalizedText, DisplayName, displayName, UA_NODEATTRIBUTESMASK_DISPLAYNAME \
375 UAPP_NODEATTR_WRAPPER( \
376 LocalizedText, Description, description, UA_NODEATTRIBUTESMASK_DESCRIPTION \
378 UAPP_NODEATTR_CAST(Bitmask<WriteMask>, WriteMask, writeMask, UA_NODEATTRIBUTESMASK_WRITEMASK) \
379 UAPP_NODEATTR_CAST( \
380 Bitmask<WriteMask>, UserWriteMask, userWriteMask, UA_NODEATTRIBUTESMASK_USERWRITEMASK \
391 using Wrapper::Wrapper;
402 using Wrapper::Wrapper;
419 :
public WrapperNative<UA_VariableAttributes, UA_TYPES_VARIABLEATTRIBUTES> {
421 using Wrapper::Wrapper;
431 template <
typename... Args>
432 [[deprecated(
"use setValue(Variant{...}) instead")]]
434 return setValue(
Variant{std::forward<Args>(
args)...});
438 template <
typename... Args>
439 [[deprecated(
"use setValue(Variant{...}) instead")]]
441 return setValue(
Variant{std::forward<Args>(
args)...});
448 template <
typename T>
450 return setDataType(asWrapper<NodeId>(opcua::getDataType<T>().typeId));
459 UA_NODEATTRIBUTESMASK_ARRAYDIMENSIONS
468 UA_NODEATTRIBUTESMASK_USERACCESSLEVEL
472 MinimumSamplingInterval,
473 minimumSamplingInterval,
474 UA_NODEATTRIBUTESMASK_MINIMUMSAMPLINGINTERVAL
476 UAPP_NODEATTR(
bool, Historizing, historizing, UA_NODEATTRIBUTESMASK_HISTORIZING)
485 using Wrapper::Wrapper;
492 UAPP_NODEATTR(
bool, Executable, executable, UA_NODEATTRIBUTESMASK_EXECUTABLE)
493 UAPP_NODEATTR(
bool, UserExecutable, userExecutable, UA_NODEATTRIBUTESMASK_USEREXECUTABLE)
503 using Wrapper::Wrapper;
510 UAPP_NODEATTR(
bool, IsAbstract, isAbstract, UA_NODEATTRIBUTESMASK_ISABSTRACT)
518 :
public WrapperNative<UA_VariableTypeAttributes, UA_TYPES_VARIABLETYPEATTRIBUTES> {
520 using Wrapper::Wrapper;
530 template <
typename... Args>
531 [[deprecated(
"use setValue(Variant{...}) instead")]]
533 return setValue(
Variant{std::forward<Args>(
args)...});
537 template <
typename... Args>
538 [[deprecated(
"use setValue(Variant{...}) instead")]]
540 return setValue(
Variant{std::forward<Args>(
args)...});
547 template <
typename T>
549 return setDataType(asWrapper<NodeId>(opcua::getDataType<T>().typeId));
558 UA_NODEATTRIBUTESMASK_ARRAYDIMENSIONS
560 UAPP_NODEATTR(
bool, IsAbstract, isAbstract, UA_NODEATTRIBUTESMASK_ISABSTRACT)
570 using Wrapper::Wrapper;
577 UAPP_NODEATTR(
bool, IsAbstract, isAbstract, UA_NODEATTRIBUTESMASK_ISABSTRACT)
580 LocalizedText, InverseName, inverseName, UA_NODEATTRIBUTESMASK_INVERSENAME
591 using Wrapper::Wrapper;
598 UAPP_NODEATTR(
bool, IsAbstract, isAbstract, UA_NODEATTRIBUTESMASK_ISABSTRACT)
607 using Wrapper::Wrapper;
614 UAPP_NODEATTR(
bool, IsAbstract, containsNoLoops, UA_NODEATTRIBUTESMASK_CONTAINSNOLOOPS)
621#undef UAPP_NODEATTR_CAST
622#undef UAPP_NODEATTR_WRAPPER
623#undef UAPP_NODEATTR_ARRAY
624#undef UAPP_NODEATTR_COMMON
634 using Wrapper::Wrapper;
644 :
public WrapperNative<UA_AnonymousIdentityToken, UA_TYPES_ANONYMOUSIDENTITYTOKEN> {
646 using Wrapper::Wrapper;
656 :
public WrapperNative<UA_UserNameIdentityToken, UA_TYPES_USERNAMEIDENTITYTOKEN> {
658 using Wrapper::Wrapper;
661 std::string_view userName,
662 std::string_view password,
663 std::string_view encryptionAlgorithm = {}
665 handle()->userName = detail::makeNative(userName);
666 handle()->password = detail::makeNative(password);
667 handle()->encryptionAlgorithm = detail::makeNative(encryptionAlgorithm);
682 using Wrapper::Wrapper;
685 handle()->certificateData = detail::makeNative(std::move(certificateData));
699 using Wrapper::Wrapper;
702 handle()->tokenData = detail::makeNative(std::move(tokenData));
703 handle()->encryptionAlgorithm = detail::makeNative(encryptionAlgorithm);
717 using Wrapper::Wrapper;
728 handle()->parentNodeId = detail::makeNative(std::move(parentNodeId));
729 handle()->referenceTypeId = detail::makeNative(std::move(referenceTypeId));
730 handle()->requestedNewNodeId = detail::makeNative(std::move(requestedNewNodeId));
731 handle()->browseName = detail::makeNative(std::move(browseName));
732 handle()->nodeClass =
static_cast<UA_NodeClass>(nodeClass);
733 handle()->nodeAttributes = detail::makeNative(std::move(nodeAttributes));
734 handle()->typeDefinition = detail::makeNative(std::move(typeDefinition));
752 using Wrapper::Wrapper;
764 using Wrapper::Wrapper;
767 handle()->requestHeader = detail::makeNative(std::move(requestHeader));
768 handle()->nodesToAddSize = nodesToAdd.
size();
769 handle()->nodesToAdd = detail::makeNativeArray(nodesToAdd);
782 using Wrapper::Wrapper;
795 using Wrapper::Wrapper;
801 std::string_view targetServerUri,
805 handle()->sourceNodeId = detail::makeNative(std::move(sourceNodeId));
806 handle()->referenceTypeId = detail::makeNative(std::move(referenceTypeId));
807 handle()->isForward = isForward;
808 handle()->targetServerUri = detail::makeNative(targetServerUri);
809 handle()->targetNodeId = detail::makeNative(std::move(targetNodeId));
810 handle()->targetNodeClass =
static_cast<UA_NodeClass>(targetNodeClass);
828 using Wrapper::Wrapper;
833 handle()->requestHeader = detail::makeNative(std::move(requestHeader));
834 handle()->referencesToAddSize = referencesToAdd.
size();
835 handle()->referencesToAdd = detail::makeNativeArray(referencesToAdd);
849 using Wrapper::Wrapper;
862 using Wrapper::Wrapper;
865 handle()->nodeId = detail::makeNative(std::move(nodeId));
866 handle()->deleteTargetReferences = deleteTargetReferences;
880 using Wrapper::Wrapper;
883 handle()->requestHeader = detail::makeNative(std::move(requestHeader));
884 handle()->nodesToDeleteSize = nodesToDelete.
size();
885 handle()->nodesToDelete = detail::makeNativeArray(nodesToDelete);
899 using Wrapper::Wrapper;
913 using Wrapper::Wrapper;
920 bool deleteBidirectional
922 handle()->sourceNodeId = detail::makeNative(std::move(sourceNodeId));
923 handle()->referenceTypeId = detail::makeNative(std::move(referenceTypeId));
924 handle()->isForward = isForward;
925 handle()->targetNodeId = detail::makeNative(std::move(targetNodeId));
926 handle()->deleteBidirectional = deleteBidirectional;
943 using Wrapper::Wrapper;
948 handle()->requestHeader = detail::makeNative(std::move(requestHeader));
949 handle()->referencesToDeleteSize = referencesToDelete.
size();
950 handle()->referencesToDelete = detail::makeNativeArray(referencesToDelete);
964 using Wrapper::Wrapper;
976 using Wrapper::Wrapper;
979 handle()->viewId = detail::makeNative(std::move(viewId));
980 handle()->timestamp = timestamp;
981 handle()->viewVersion = viewVersion;
1038 using Wrapper::Wrapper;
1043 NodeId referenceTypeId = ReferenceTypeId::References,
1044 bool includeSubtypes =
true,
1048 handle()->nodeId = detail::makeNative(std::move(nodeId));
1050 handle()->referenceTypeId = detail::makeNative(std::move(referenceTypeId));
1051 handle()->includeSubtypes = includeSubtypes;
1052 handle()->nodeClassMask = nodeClassMask.get();
1053 handle()->resultMask = resultMask.get();
1069 using Wrapper::Wrapper;
1074 uint32_t requestedMaxReferencesPerNode,
1077 handle()->requestHeader = detail::makeNative(std::move(requestHeader));
1078 handle()->view = detail::makeNative(std::move(view));
1079 handle()->requestedMaxReferencesPerNode = requestedMaxReferencesPerNode;
1080 handle()->nodesToBrowseSize = nodesToBrowse.
size();
1081 handle()->nodesToBrowse = detail::makeNativeArray(nodesToBrowse);
1097 using Wrapper::Wrapper;
1114 using Wrapper::Wrapper;
1126 using Wrapper::Wrapper;
1138 using Wrapper::Wrapper;
1142 bool releaseContinuationPoints,
1145 handle()->requestHeader = detail::makeNative(std::move(requestHeader));
1146 handle()->releaseContinuationPoints = releaseContinuationPoints;
1147 handle()->continuationPointsSize = continuationPoints.
size();
1148 handle()->continuationPoints = detail::makeNativeArray(continuationPoints);
1162 using Wrapper::Wrapper;
1175 using Wrapper::Wrapper;
1180 handle()->referenceTypeId = detail::makeNative(std::move(referenceTypeId));
1181 handle()->isInverse = isInverse;
1182 handle()->includeSubtypes = includeSubtypes;
1183 handle()->targetName = detail::makeNative(std::move(targetName));
1197 using Wrapper::Wrapper;
1203 handle()->elementsSize = elements.
size();
1204 handle()->elements = detail::makeNativeArray(elements);
1215 using Wrapper::Wrapper;
1218 handle()->startingNode = detail::makeNative(std::move(startingNode));
1219 handle()->relativePath = detail::makeNative(std::move(relativePath));
1231 using Wrapper::Wrapper;
1242 using Wrapper::Wrapper;
1254 UA_TYPES_TRANSLATEBROWSEPATHSTONODEIDSREQUEST> {
1256 using Wrapper::Wrapper;
1261 handle()->requestHeader = detail::makeNative(std::move(requestHeader));
1262 handle()->browsePathsSize = browsePaths.
size();
1263 handle()->browsePaths = detail::makeNativeArray(browsePaths);
1276 UA_TYPES_TRANSLATEBROWSEPATHSTONODEIDSRESPONSE> {
1278 using Wrapper::Wrapper;
1291 using Wrapper::Wrapper;
1294 handle()->requestHeader = detail::makeNative(std::move(requestHeader));
1295 handle()->nodesToRegisterSize = nodesToRegister.
size();
1296 handle()->nodesToRegister = detail::makeNativeArray(nodesToRegister);
1309 using Wrapper::Wrapper;
1321 using Wrapper::Wrapper;
1324 handle()->requestHeader = detail::makeNative(std::move(requestHeader));
1325 handle()->nodesToUnregisterSize = nodesToUnregister.
size();
1326 handle()->nodesToUnregister = detail::makeNativeArray(nodesToUnregister);
1339 using Wrapper::Wrapper;
1365 using Wrapper::Wrapper;
1370 std::string_view indexRange = {},
1373 handle()->nodeId = detail::makeNative(std::move(nodeId));
1374 handle()->attributeId = detail::makeNative(attributeId);
1375 handle()->indexRange = detail::makeNative(indexRange);
1376 handle()->dataEncoding = detail::makeNative(std::move(dataEncoding));
1391 using Wrapper::Wrapper;
1399 handle()->requestHeader = detail::makeNative(std::move(requestHeader));
1400 handle()->maxAge = maxAge;
1402 handle()->nodesToReadSize = nodesToRead.
size();
1403 handle()->nodesToRead = detail::makeNativeArray(nodesToRead);
1418 using Wrapper::Wrapper;
1431 using Wrapper::Wrapper;
1436 handle()->nodeId = detail::makeNative(std::move(nodeId));
1437 handle()->attributeId = detail::makeNative(attributeId);
1438 handle()->indexRange = detail::makeNative(indexRange);
1439 handle()->value = detail::makeNative(std::move(value));
1454 using Wrapper::Wrapper;
1457 handle()->requestHeader = detail::makeNative(std::move(requestHeader));
1458 handle()->nodesToWriteSize = nodesToWrite.
size();
1459 handle()->nodesToWrite = detail::makeNativeArray(nodesToWrite);
1472 using Wrapper::Wrapper;
1485 using Wrapper::Wrapper;
1488 std::string_view productUri,
1489 std::string_view manufacturerName,
1490 std::string_view productName,
1491 std::string_view softwareVersion,
1492 std::string_view buildNumber,
1495 handle()->productUri = detail::makeNative(productUri);
1496 handle()->manufacturerName = detail::makeNative(manufacturerName);
1497 handle()->productName = detail::makeNative(productName);
1498 handle()->softwareVersion = detail::makeNative(softwareVersion);
1499 handle()->buildNumber = detail::makeNative(buildNumber);
1500 handle()->buildDate = detail::makeNative(std::move(buildDate));
1513#ifdef UA_ENABLE_METHODCALLS
1521 using Wrapper::Wrapper;
1524 std::string_view name,
1530 handle()->name = detail::makeNative(name);
1531 handle()->description = detail::makeNative(std::move(description));
1532 handle()->dataType = detail::makeNative(std::move(dataType));
1533 handle()->valueRank = detail::makeNative(valueRank);
1534 handle()->arrayDimensionsSize = arrayDimensions.
size();
1535 handle()->arrayDimensions = detail::makeNativeArray(arrayDimensions);
1551 using Wrapper::Wrapper;
1554 handle()->objectId = detail::makeNative(std::move(objectId));
1555 handle()->methodId = detail::makeNative(std::move(methodId));
1556 handle()->inputArgumentsSize = inputArguments.
size();
1557 handle()->inputArguments = detail::makeNativeArray(inputArguments);
1571 using Wrapper::Wrapper;
1576 DiagnosticInfo, inputArgumentDiagnosticInfos, inputArgumentDiagnosticInfosSize
1587 using Wrapper::Wrapper;
1590 handle()->requestHeader = detail::makeNative(std::move(requestHeader));
1591 handle()->methodsToCallSize = methodsToCall.
size();
1592 handle()->methodsToCall = detail::makeNativeArray(methodsToCall);
1605 using Wrapper::Wrapper;
1616#ifdef UA_ENABLE_SUBSCRIPTIONS
1641 GreaterThanOrEqual = 4,
1642 LessThanOrEqual = 5,
1666 using Wrapper::Wrapper;
1669 handle()->index = index;
1681 template <
typename T>
1682 using EnableIfLiteral =
1683 std::enable_if_t<!detail::IsOneOf<T, Variant, UA_LiteralOperand, LiteralOperand>::value>;
1686 using Wrapper::Wrapper;
1689 handle()->value = detail::makeNative(std::move(value));
1692 template <
typename T,
typename = EnableIfLiteral<T>>
1705 using Wrapper::Wrapper;
1709 std::string_view alias,
1712 std::string_view indexRange = {}
1714 handle()->nodeId = detail::makeNative(std::move(nodeId));
1715 handle()->alias = detail::makeNative(alias);
1716 handle()->browsePath = detail::makeNative(std::move(browsePath));
1717 handle()->attributeId = detail::makeNative(attributeId);
1718 handle()->indexRange = detail::makeNative(indexRange);
1735 using Wrapper::Wrapper;
1741 std::string_view indexRange = {}
1743 handle()->typeDefinitionId = detail::makeNative(std::move(typeDefinitionId));
1744 handle()->browsePathSize = browsePath.
size();
1745 handle()->browsePath = detail::makeNativeArray(browsePath);
1746 handle()->attributeId = detail::makeNative(attributeId);
1747 handle()->indexRange = detail::makeNative(indexRange);
1788 using Wrapper::Wrapper;
1809 using Wrapper::Wrapper;
1852 StatusValueTimestamp = 2,
1874 using Wrapper::Wrapper;
1878 handle()->deadbandType = detail::makeNative(deadbandType);
1879 handle()->deadbandValue = deadbandValue;
1893 using Wrapper::Wrapper;
1896 handle()->selectClausesSize = selectClauses.
size();
1897 handle()->selectClauses = detail::makeNativeArray(selectClauses);
1898 handle()->whereClause = detail::makeNative(std::move(whereClause));
1913 using Wrapper::Wrapper;
1918 double processingInterval,
1921 handle()->startTime = detail::makeNative(std::move(startTime));
1922 handle()->aggregateType = detail::makeNative(std::move(aggregateType));
1923 handle()->processingInterval = processingInterval;
1924 handle()->aggregateConfiguration = aggregateConfiguration;
1940 using Wrapper::Wrapper;
1947 double samplingInterval = 250.0,
1949 uint32_t queueSize = 1U,
1950 bool discardOldest = true
1952 handle()->samplingInterval = samplingInterval;
1953 handle()->filter = detail::makeNative(std::move(filter));
1954 handle()->queueSize = queueSize;
1955 handle()->discardOldest = discardOldest;
1971 using Wrapper::Wrapper;
1978 handle()->itemToMonitor = detail::makeNative(std::move(itemToMonitor));
1980 handle()->requestedParameters = detail::makeNative(std::move(requestedParameters));
1995 using Wrapper::Wrapper;
2009 :
public WrapperNative<UA_CreateMonitoredItemsRequest, UA_TYPES_CREATEMONITOREDITEMSREQUEST> {
2011 using Wrapper::Wrapper;
2019 handle()->requestHeader = detail::makeNative(std::move(requestHeader));
2020 handle()->subscriptionId = subscriptionId;
2022 handle()->itemsToCreateSize = itemsToCreate.
size();
2023 handle()->itemsToCreate = detail::makeNativeArray(itemsToCreate);
2039 using Wrapper::Wrapper;
2053 using Wrapper::Wrapper;
2058 handle()->monitoredItemId = monitoredItemId;
2059 handle()->requestedParameters = detail::makeNative(std::move(requestedParameters));
2071 :
public WrapperNative<UA_MonitoredItemModifyResult, UA_TYPES_MONITOREDITEMMODIFYRESULT> {
2073 using Wrapper::Wrapper;
2086 :
public WrapperNative<UA_ModifyMonitoredItemsRequest, UA_TYPES_MODIFYMONITOREDITEMSREQUEST> {
2088 using Wrapper::Wrapper;
2096 handle()->requestHeader = detail::makeNative(std::move(requestHeader));
2097 handle()->subscriptionId = subscriptionId;
2099 handle()->itemsToModifySize = itemsToModify.
size();
2100 handle()->itemsToModify = detail::makeNativeArray(itemsToModify);
2116 using Wrapper::Wrapper;
2130 using Wrapper::Wrapper;
2138 handle()->requestHeader = detail::makeNative(std::move(requestHeader));
2139 handle()->subscriptionId = subscriptionId;
2141 handle()->monitoredItemIdsSize = monitoredItemIds.
size();
2142 handle()->monitoredItemIds = detail::makeNativeArray(monitoredItemIds);
2158 using Wrapper::Wrapper;
2172 using Wrapper::Wrapper;
2181 handle()->requestHeader = detail::makeNative(std::move(requestHeader));
2182 handle()->subscriptionId = subscriptionId;
2183 handle()->triggeringItemId = triggeringItemId;
2184 handle()->linksToAddSize = linksToAdd.
size();
2185 handle()->linksToAdd = detail::makeNativeArray(linksToAdd);
2186 handle()->linksToRemoveSize = linksToRemove.
size();
2187 handle()->linksToRemove = detail::makeNativeArray(linksToRemove);
2204 using Wrapper::Wrapper;
2220 using Wrapper::Wrapper;
2227 handle()->requestHeader = detail::makeNative(std::move(requestHeader));
2228 handle()->subscriptionId = subscriptionId;
2229 handle()->monitoredItemIdsSize = monitoredItemIds.
size();
2230 handle()->monitoredItemIds = detail::makeNativeArray(monitoredItemIds);
2245 using Wrapper::Wrapper;
2259 using Wrapper::Wrapper;
2263 double requestedPublishingInterval,
2264 uint32_t requestedLifetimeCount,
2265 uint32_t requestedMaxKeepAliveCount,
2266 uint32_t maxNotificationsPerPublish,
2267 bool publishingEnabled,
2270 handle()->requestHeader = detail::makeNative(std::move(requestHeader));
2271 handle()->requestedPublishingInterval = requestedPublishingInterval;
2272 handle()->requestedLifetimeCount = requestedLifetimeCount;
2273 handle()->requestedMaxKeepAliveCount = requestedMaxKeepAliveCount;
2274 handle()->maxNotificationsPerPublish = maxNotificationsPerPublish;
2275 handle()->publishingEnabled = publishingEnabled;
2276 handle()->priority = priority;
2295 using Wrapper::Wrapper;
2311 using Wrapper::Wrapper;
2316 double requestedPublishingInterval,
2317 uint32_t requestedLifetimeCount,
2318 uint32_t requestedMaxKeepAliveCount,
2319 uint32_t maxNotificationsPerPublish,
2322 handle()->requestHeader = detail::makeNative(std::move(requestHeader));
2323 handle()->subscriptionId = subscriptionId;
2324 handle()->requestedPublishingInterval = requestedPublishingInterval;
2325 handle()->requestedLifetimeCount = requestedLifetimeCount;
2326 handle()->requestedMaxKeepAliveCount = requestedMaxKeepAliveCount;
2327 handle()->maxNotificationsPerPublish = maxNotificationsPerPublish;
2328 handle()->priority = priority;
2347 using Wrapper::Wrapper;
2362 using Wrapper::Wrapper;
2367 handle()->requestHeader = detail::makeNative(std::move(requestHeader));
2368 handle()->publishingEnabled = publishingEnabled;
2369 handle()->subscriptionIdsSize = subscriptionIds.
size();
2370 handle()->subscriptionIds = detail::makeNativeArray(subscriptionIds);
2385 using Wrapper::Wrapper;
2399 using Wrapper::Wrapper;
2412 using Wrapper::Wrapper;
2415 handle()->requestHeader = detail::makeNative(std::move(requestHeader));
2416 handle()->subscriptionIdsSize = subscriptionIds.
size();
2417 handle()->subscriptionIds = detail::makeNativeArray(subscriptionIds);
2431 using Wrapper::Wrapper;
2458#if UAPP_HAS_DATAACCESS
2466 using Wrapper::Wrapper;
2468 Range(
double low,
double high)
noexcept {
2469 handle()->low = low;
2470 handle()->high = high;
2483 using Wrapper::Wrapper;
2486 std::string_view namespaceUri,
2491 handle()->namespaceUri = detail::makeNative(namespaceUri);
2492 handle()->unitId = unitId;
2493 handle()->displayName = detail::makeNative(std::move(displayName));
2494 handle()->description = detail::makeNative(std::move(description));
2509 using Wrapper::Wrapper;
2512 handle()->real = real;
2513 handle()->imaginary = imaginary;
2527 using Wrapper::Wrapper;
2530 handle()->real = real;
2531 handle()->imaginary = imaginary;
2554 using Wrapper::Wrapper;
2563 handle()->engineeringUnits = detail::makeNative(std::move(engineeringUnits));
2564 handle()->eURange = detail::makeNative(std::move(eURange));
2565 handle()->title = detail::makeNative(std::move(title));
2567 handle()->axisStepsSize = axisSteps.
size();
2568 handle()->axisSteps = detail::makeNativeArray(axisSteps);
2584 using Wrapper::Wrapper;
2588 handle()->value = value;
2599#ifdef UA_ENABLE_TYPEDESCRIPTION
2608 StructureWithOptionalFields = 1,
2619 using Wrapper::Wrapper;
2637 using Wrapper::Wrapper;
2651 using Wrapper::Wrapper;
2654 :
EnumField(value, {
"", name}, {}, name) {}
2659 handle()->value = value;
2660 handle()->displayName = detail::makeNative(std::move(displayName));
2661 handle()->description = detail::makeNative(std::move(description));
2662 handle()->name = detail::makeNative(name);
2677 using Wrapper::Wrapper;
2683 handle()->fieldsSize = fields.
size();
2684 handle()->fields = detail::makeNativeArray(fields);
Bitmask using (scoped) enums.
UA_ByteString wrapper class.
UA_DataType wrapper class.
UA_DataValue wrapper class.
UA_DateTime wrapper class.
UA_DiagnosticInfo wrapper class.
UA_ExpandedNodeId wrapper class.
UA_ExtensionObject wrapper class.
UA_LocalizedText wrapper class.
UA_QualifiedName wrapper class.
View to a contiguous sequence of objects, similar to std::span in C++20.
constexpr size_t size() const noexcept
UA_StatusCode wrapper class.
UA_Variant wrapper class.
Template base class to wrap (native) objects.
constexpr T * handle() noexcept
Return pointer to native object.
constexpr Wrapper() noexcept=default
UA_AddNodesItem wrapper class.
AddNodesItem(ExpandedNodeId parentNodeId, NodeId referenceTypeId, ExpandedNodeId requestedNewNodeId, QualifiedName browseName, NodeClass nodeClass, ExtensionObject nodeAttributes, ExpandedNodeId typeDefinition)
UA_AddNodesRequest wrapper class.
AddNodesRequest(RequestHeader requestHeader, Span< const AddNodesItem > nodesToAdd)
UA_AddNodesResponse wrapper class.
UA_AddNodesResult wrapper class.
UA_AddReferencesItem wrapper class.
AddReferencesItem(NodeId sourceNodeId, NodeId referenceTypeId, bool isForward, std::string_view targetServerUri, ExpandedNodeId targetNodeId, NodeClass targetNodeClass)
UA_AddReferencesRequest wrapper class.
AddReferencesRequest(RequestHeader requestHeader, Span< const AddReferencesItem > referencesToAdd)
UA_AddReferencesResponse wrapper class.
UA_AggregateFilter wrapper class.
AggregateFilter(DateTime startTime, NodeId aggregateType, double processingInterval, AggregateConfiguration aggregateConfiguration)
UA_AnonymousIdentityToken wrapper class.
UA_ApplicationDescription wrapper class.
ApplicationDescription(std::string_view applicationUri, std::string_view productUri, LocalizedText applicationName, ApplicationType applicationType, std::string_view gatewayServerUri, std::string_view discoveryProfileUri, Span< const String > discoveryUrls)
UA_Argument wrapper class.
Argument(std::string_view name, LocalizedText description, NodeId dataType, ValueRank valueRank={}, Span< const uint32_t > arrayDimensions={})
UA_AttributeOperand wrapper class.
AttributeOperand(NodeId nodeId, std::string_view alias, RelativePath browsePath, AttributeId attributeId, std::string_view indexRange={})
UA_BrowseDescription wrapper class.
BrowseDescription(NodeId nodeId, BrowseDirection browseDirection, NodeId referenceTypeId=ReferenceTypeId::References, bool includeSubtypes=true, Bitmask< NodeClass > nodeClassMask=NodeClass::Unspecified, Bitmask< BrowseResultMask > resultMask=BrowseResultMask::All)
UA_BrowseNextRequest wrapper class.
BrowseNextRequest(RequestHeader requestHeader, bool releaseContinuationPoints, Span< const ByteString > continuationPoints)
UA_BrowseNextResponse wrapper class.
UA_BrowsePathResult wrapper class.
UA_BrowsePathTarget wrapper class.
UA_BrowsePath wrapper class.
BrowsePath(NodeId startingNode, RelativePath relativePath)
UA_BrowseRequest wrapper class.
BrowseRequest(RequestHeader requestHeader, ViewDescription view, uint32_t requestedMaxReferencesPerNode, Span< const BrowseDescription > nodesToBrowse)
UA_BrowseResponse wrapper class.
UA_BrowseResult wrapper class.
UA_BuildInfo wrapper class.
BuildInfo(std::string_view productUri, std::string_view manufacturerName, std::string_view productName, std::string_view softwareVersion, std::string_view buildNumber, DateTime buildDate)
UA_CallMethodRequest wrapper class.
CallMethodRequest(NodeId objectId, NodeId methodId, Span< const Variant > inputArguments)
UA_CallMethodResult wrapper class.
UA_CallRequest wrapper class.
CallRequest(RequestHeader requestHeader, Span< const CallMethodRequest > methodsToCall)
UA_CallResponse wrapper class.
UA_ComplexNumberType wrapper class.
ComplexNumberType(float real, float imaginary) noexcept
UA_ContentFilterElement wrapper class.
ContentFilterElement(FilterOperator filterOperator, Span< const FilterOperand > operands)
UA_ContentFilter wrapper class.
ContentFilter(std::initializer_list< ContentFilterElement > elements)
ContentFilter(Span< const ContentFilterElement > elements)
UA_CreateMonitoredItemsRequest wrapper class.
CreateMonitoredItemsRequest(RequestHeader requestHeader, IntegerId subscriptionId, TimestampsToReturn timestampsToReturn, Span< const MonitoredItemCreateRequest > itemsToCreate)
UA_CreateMonitoredItemsResponse wrapper class.
UA_CreateSubscriptionRequest wrapper class.
CreateSubscriptionRequest(RequestHeader requestHeader, double requestedPublishingInterval, uint32_t requestedLifetimeCount, uint32_t requestedMaxKeepAliveCount, uint32_t maxNotificationsPerPublish, bool publishingEnabled, uint8_t priority)
UA_CreateSubscriptionResponse wrapper class.
UA_DataChangeFilter wrapper class.
DataChangeFilter(DataChangeTrigger trigger, DeadbandType deadbandType, double deadbandValue)
UA_DataTypeAttributes wrapper class.
DataTypeAttributes()
Construct with default attribute definitions.
UA_DeleteMonitoredItemsRequest wrapper class.
DeleteMonitoredItemsRequest(RequestHeader requestHeader, IntegerId subscriptionId, Span< const IntegerId > monitoredItemIds)
UA_DeleteMonitoredItemsResponse wrapper class.
UA_DeleteNodesItem wrapper class.
DeleteNodesItem(NodeId nodeId, bool deleteTargetReferences)
UA_DeleteNodesRequest wrapper class.
DeleteNodesRequest(RequestHeader requestHeader, Span< const DeleteNodesItem > nodesToDelete)
UA_DeleteNodesResponse wrapper class.
UA_DeleteReferencesItem wrapper class.
DeleteReferencesItem(NodeId sourceNodeId, NodeId referenceTypeId, bool isForward, ExpandedNodeId targetNodeId, bool deleteBidirectional)
UA_DeleteReferencesRequest wrapper class.
DeleteReferencesRequest(RequestHeader requestHeader, Span< const DeleteReferencesItem > referencesToDelete)
UA_DeleteReferencesResponse wrapper class.
UA_DeleteSubscriptionsRequest wrapper class.
DeleteSubscriptionsRequest(RequestHeader requestHeader, Span< const IntegerId > subscriptionIds)
UA_DeleteSubscriptionsResponse wrapper class.
UA_DoubleComplexNumberType wrapper class.
DoubleComplexNumberType(double real, double imaginary) noexcept
UA_ElementOperand wrapper class.
ElementOperand(uint32_t index)
UA_EndpointDescription wrapper class.
UA_EnumDefinition wrapper class.
EnumDefinition(std::initializer_list< EnumField > fields)
EnumDefinition(Span< const EnumField > fields)
UA_EnumField wrapper class.
EnumField(int64_t value, LocalizedText displayName, LocalizedText description, std::string_view name)
EnumField(int64_t value, std::string_view name)
UA_EnumValueType wrapper class.
EnumValueType(int64_t value, LocalizedText displayName, LocalizedText description)
const LocalizedText & description() const noexcept
const LocalizedText & displayName() const noexcept
int64_t value() const noexcept
UA_EventFilter wrapper class.
EventFilter(Span< const SimpleAttributeOperand > selectClauses, ContentFilter whereClause)
UA_IssuedIdentityToken wrapper class.
IssuedIdentityToken(ByteString tokenData, std::string_view encryptionAlgorithm={})
UA_LiteralOperand wrapper class.
LiteralOperand(T &&literal)
LiteralOperand(Variant value)
UA_MethodAttributes wrapper class.
MethodAttributes()
Construct with default attribute definitions.
UA_ModifyMonitoredItemsRequest wrapper class.
ModifyMonitoredItemsRequest(RequestHeader requestHeader, IntegerId subscriptionId, TimestampsToReturn timestampsToReturn, Span< const MonitoredItemModifyRequest > itemsToModify)
UA_CreateMonitoredItemsResponse wrapper class.
UA_ModifySubscriptionRequest wrapper class.
ModifySubscriptionRequest(RequestHeader requestHeader, IntegerId subscriptionId, double requestedPublishingInterval, uint32_t requestedLifetimeCount, uint32_t requestedMaxKeepAliveCount, uint32_t maxNotificationsPerPublish, uint8_t priority)
UA_ModifySubscriptionResponse wrapper class.
UA_MonitoredItemCreateRequest wrapper class.
MonitoredItemCreateRequest(ReadValueId itemToMonitor, MonitoringMode monitoringMode=MonitoringMode::Reporting, MonitoringParameters requestedParameters={})
UA_MonitoredItemCreateResult wrapper class.
UA_MonitoredItemModifyRequest wrapper class.
MonitoredItemModifyRequest(IntegerId monitoredItemId, MonitoringParameters requestedParameters)
UA_MonitoredItemModifyResult wrapper class.
UA_MonitoringParameters wrapper class.
MonitoringParameters(double samplingInterval=250.0, ExtensionObject filter={}, uint32_t queueSize=1U, bool discardOldest=true)
Construct with default values from open62541.
UA_NodeAttributes wrapper class.
UA_ObjectAttributes wrapper class.
ObjectAttributes()
Construct with default attribute definitions.
UA_ObjectTypeAttributes wrapper class.
ObjectTypeAttributes()
Construct with default attribute definitions.
Range(double low, double high) noexcept
UA_ReadRequest wrapper class.
ReadRequest(RequestHeader requestHeader, double maxAge, TimestampsToReturn timestampsToReturn, Span< const ReadValueId > nodesToRead)
UA_ReadResponse wrapper class.
UA_ReadValueId wrapper class.
ReadValueId(NodeId nodeId, AttributeId attributeId, std::string_view indexRange={}, QualifiedName dataEncoding={})
UA_ReferenceDescription wrapper class.
UA_ReferenceTypeAttributes wrapper class.
ReferenceTypeAttributes()
Construct with default attribute definitions.
UA_RegisterNodesRequest wrapper class.
RegisterNodesRequest(RequestHeader requestHeader, Span< const NodeId > nodesToRegister)
UA_RegisterNodesResponse wrapper class.
UA_RelativePathElement wrapper class.
RelativePathElement(NodeId referenceTypeId, bool isInverse, bool includeSubtypes, QualifiedName targetName)
UA_RelativePath wrapper class.
RelativePath(Span< const RelativePathElement > elements)
RelativePath(std::initializer_list< RelativePathElement > elements)
UA_SetMonitoringModeRequest wrapper class.
SetMonitoringModeRequest(RequestHeader requestHeader, IntegerId subscriptionId, MonitoringMode monitoringMode, Span< const IntegerId > monitoredItemIds)
UA_SetMonitoringModeResponse wrapper class.
UA_SetPublishingModeRequest wrapper class.
SetPublishingModeRequest(RequestHeader requestHeader, bool publishingEnabled, Span< const IntegerId > subscriptionIds)
UA_SetPublishingModeResponse wrapper class.
UA_SetTriggeringRequest wrapper class.
SetTriggeringRequest(RequestHeader requestHeader, IntegerId subscriptionId, IntegerId triggeringItemId, Span< const IntegerId > linksToAdd, Span< const IntegerId > linksToRemove)
UA_SetTriggeringResponse wrapper class.
UA_SimpleAttributeOperand wrapper class.
SimpleAttributeOperand(NodeId typeDefinitionId, Span< const QualifiedName > browsePath, AttributeId attributeId, std::string_view indexRange={})
UA_StatusChangeNotification wrapper class.
UA_StructureDefinition wrapper class.
UA_StructureField wrapper class.
UA_TranslateBrowsePathsToNodeIdsRequest wrapper class.
TranslateBrowsePathsToNodeIdsRequest(RequestHeader requestHeader, Span< const BrowsePath > browsePaths)
UA_TranslateBrowsePathsToNodeIdsResponse wrapper class.
UA_UnregisterNodesRequest wrapper class.
UnregisterNodesRequest(RequestHeader requestHeader, Span< const NodeId > nodesToUnregister)
UA_UnregisterNodesResponse wrapper class.
UA_UserIdentityToken wrapper class.
UA_UserNameIdentityToken wrapper class.
UserNameIdentityToken(std::string_view userName, std::string_view password, std::string_view encryptionAlgorithm={})
UA_UserTokenPolicy wrapper class.
UserTokenPolicy(std::string_view policyId, UserTokenType tokenType, std::string_view issuedTokenType, std::string_view issuerEndpointUrl, std::string_view securityPolicyUri)
UA_VariableAttributes wrapper class.
auto & setValueArray(Args &&... args)
auto & setDataType()
This is an overloaded member function, provided for convenience. It differs from the above function o...
auto & setValueScalar(Args &&... args)
VariableAttributes()
Construct with default attribute definitions.
UA_VariableAttributes wrapper class.
VariableTypeAttributes()
Construct with default attribute definitions.
auto & setValueArray(Args &&... args)
auto & setDataType()
This is an overloaded member function, provided for convenience. It differs from the above function o...
auto & setValueScalar(Args &&... args)
UA_ViewAttributes wrapper class.
ViewAttributes()
Construct with default attribute definitions.
UA_ViewDescription wrapper class.
ViewDescription(NodeId viewId, DateTime timestamp, uint32_t viewVersion)
UA_WriteRequest wrapper class.
WriteRequest(RequestHeader requestHeader, Span< const WriteValue > nodesToWrite)
UA_WriteResponse wrapper class.
UA_WriteValue wrapper class.
WriteValue(NodeId nodeId, AttributeId attributeId, std::string_view indexRange, DataValue value)
UA_X509IdentityToken wrapper class.
X509IdentityToken(ByteString certificateData)
XVType(double x, float value) noexcept
UA_EXPORT const UA_ObjectTypeAttributes UA_ObjectTypeAttributes_default
UA_EXPORT const UA_VariableAttributes UA_VariableAttributes_default
UA_EXPORT const UA_DataTypeAttributes UA_DataTypeAttributes_default
UA_EXPORT const UA_ViewAttributes UA_ViewAttributes_default
UA_EXPORT const UA_VariableTypeAttributes UA_VariableTypeAttributes_default
UA_EXPORT const UA_MethodAttributes UA_MethodAttributes_default
UA_EXPORT const UA_ReferenceTypeAttributes UA_ReferenceTypeAttributes_default
UA_EXPORT const UA_ObjectAttributes UA_ObjectAttributes_default
constexpr std::false_type isBitmaskEnum(T)
Function template to define an enum (class) as a bitmask and allow bitwise operations.
ReferenceTypeId
ReferenceType node ids defined by the OPC UA specification (generated).
BrowseResultMask
Browse result mask.
DeadbandType
Deadband type.
#define UAPP_NODEATTR_WRAPPER(Type, suffix, member, flag)
ContentFilter operator!(const ContentFilterElement &filterElement)
std::variant< ElementOperand, LiteralOperand, AttributeOperand, SimpleAttributeOperand, ExtensionObject > FilterOperand
Filter operand.
ContentFilter operator||(const ContentFilter &lhs, const ContentFilterElement &rhs)
UserTokenType
User identity token type.
PerformUpdateType
Perform update type for structured data history updates.
DataChangeTrigger
Data change trigger.
ContentFilter operator!(const ContentFilter &filter)
StructureType
Structure type.
AxisScaleEnumeration
Axis scale.
ContentFilter operator&&(const ContentFilterElement &lhs, const ContentFilterElement &rhs)
ApplicationType
Application type.
MonitoringMode
Monitoring mode.
ContentFilter operator||(const ContentFilterElement &lhs, const ContentFilter &rhs)
MessageSecurityMode
Message security mode.
BrowseDirection
Browse direction.
ContentFilter operator||(const ContentFilter &lhs, const ContentFilter &rhs)
ContentFilter operator&&(const ContentFilter &lhs, const ContentFilterElement &rhs)
TimestampsToReturn
Timestamps to return.
ContentFilter operator&&(const ContentFilterElement &lhs, const ContentFilter &rhs)
NodeAttributesMask
Node attributes mask.
ContentFilter operator||(const ContentFilterElement &lhs, const ContentFilterElement &rhs)
#define UAPP_NODEATTR_ARRAY(Type, suffix, member, memberSize, flag)
FilterOperator
Filter operator.
#define UAPP_NODEATTR_CAST(Type, suffix, member, flag)
#define UAPP_NODEATTR(Type, suffix, member, flag)
ContentFilter operator&&(const ContentFilter &lhs, const ContentFilter &rhs)
#define UAPP_NODEATTR_COMMON
static UA_LogCategory const char va_list args
uint32_t IntegerId
IntegerId.
EventNotifier
Event notifier.
AttributeId
Attribute identifiers.
@ MinimumSamplingInterval
If a reference is symmetric
UA_BROWSERESULTMASK_REFERENCETYPEID
UA_BROWSERESULTMASK_DISPLAYNAME
UA_BROWSERESULTMASK_ISFORWARD
UA_BROWSERESULTMASK_REFERENCETYPEINFO
UA_BROWSERESULTMASK_TYPEDEFINITION
UA_BROWSERESULTMASK_BROWSENAME
UA_BROWSERESULTMASK_TARGETINFO
UA_BROWSERESULTMASK_NODECLASS
UA_EXPORT const UA_ObjectTypeAttributes UA_ObjectTypeAttributes_default
UA_EXPORT const UA_VariableAttributes UA_VariableAttributes_default
#define UAPP_GETTER_SPAN(Type, memberArray, memberSize)
#define UAPP_GETTER_SPAN_WRAPPER(Type, memberArray, memberSize)
UA_EXPORT const UA_DataTypeAttributes UA_DataTypeAttributes_default
UA_EXPORT const UA_ViewAttributes UA_ViewAttributes_default
UA_EXPORT const UA_VariableTypeAttributes UA_VariableTypeAttributes_default
UA_EXPORT const UA_MethodAttributes UA_MethodAttributes_default
#define UAPP_GETTER_CAST(Type, member)
#define UAPP_GETTER(Type, member)
UA_EXPORT const UA_ReferenceTypeAttributes UA_ReferenceTypeAttributes_default
#define UAPP_GETTER_WRAPPER(Type, member)
UA_EXPORT const UA_ObjectAttributes UA_ObjectAttributes_default