/* THIS IS A SINGLE-FILE DISTRIBUTION CONCATENATED FROM THE OPEN62541 SOURCES * visit http://open62541.org/ for information about this software * Git-Revision: unknown--git-commit-id-unknown */ /* * Copyright (C) 2015 the contributors as stated in the AUTHORS file * * This file is part of open62541. open62541 is free software: you can * redistribute it and/or modify it under the terms of the GNU Lesser General * Public License, version 3 (as published by the Free Software Foundation) with * a static linking exception as stated in the LICENSE file provided with * open62541. * * open62541 is distributed in the hope that it will be useful, but WITHOUT ANY * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR * A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more * details. */ #ifndef OPEN62541_H_ #define OPEN62541_H_ #ifdef __cplusplus extern "C" { #endif /*********************************** amalgamated original file "/home/wn/Sources/open62541-open62541-395ce48/build/src_generated/ua_config.h" ***********************************/ /* * Copyright (C) 2013-2015 the contributors as stated in the AUTHORS file * * This file is part of open62541. open62541 is free software: you can * redistribute it and/or modify it under the terms of the GNU Lesser General * Public License, version 3 (as published by the Free Software Foundation) with * a static linking exception as stated in the LICENSE file provided with * open62541. * * open62541 is distributed in the hope that it will be useful, but WITHOUT ANY * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR * A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more * details. */ #ifdef __cplusplus extern "C" { #endif #ifndef _XOPEN_SOURCE # define _XOPEN_SOURCE 500 #endif #ifndef _DEFAULT_SOURCE # define _DEFAULT_SOURCE #endif #define UA_LOGLEVEL 300 /* #undef UA_ENABLE_MULTITHREADING */ #define UA_ENABLE_METHODCALLS /* #undef UA_ENABLE_SUBSCRIPTIONS */ /* #undef UA_ENABLE_TYPENAMES */ /* #undef UA_ENABLE_EMBEDDED_LIBC */ /* #undef UA_ENABLE_GENERATE_NAMESPACE0 */ /* #undef UA_ENABLE_EXTERNAL_NAMESPACES */ #define UA_ENABLE_NODEMANAGEMENT /* #undef UA_ENABLE_NONSTANDARD_UDP */ /* #undef UA_ENABLE_NONSTANDARD_STATELESS */ /** * Function Export * --------------- */ #ifdef _WIN32 # ifdef UA_DYNAMIC_LINKING # ifdef __GNUC__ # define UA_EXPORT __attribute__ ((dllexport)) # else # define UA_EXPORT __declspec(dllexport) # endif # else # ifdef __GNUC__ # define UA_EXPORT __attribute__ ((dllexport)) # else # define UA_EXPORT __declspec(dllimport) # endif # endif #else # if __GNUC__ || __clang__ # define UA_EXPORT __attribute__ ((visibility ("default"))) # else # define UA_EXPORT # endif #endif /** * Inline Functions * ---------------- */ #ifdef _MSC_VER # define UA_INLINE __inline #else # define UA_INLINE inline #endif /** * Non-aliasing pointers * -------------------- */ #ifdef _MSC_VER # define UA_RESTRICT __restrict #elif defined(__GNUC__) # define UA_RESTRICT __restrict__ #else # define UA_RESTRICT restrict #endif /** * Function attributes * ------------------- */ #ifdef __GNUC__ # define UA_FUNC_ATTR_MALLOC __attribute__((malloc)) # define UA_FUNC_ATTR_PURE __attribute__ ((pure)) # define UA_FUNC_ATTR_CONST __attribute__((const)) # define UA_FUNC_ATTR_WARN_UNUSED_RESULT __attribute__((warn_unused_result)) #else # define UA_FUNC_ATTR_MALLOC # define UA_FUNC_ATTR_PURE # define UA_FUNC_ATTR_CONST # define UA_FUNC_ATTR_WARN_UNUSED_RESULT #endif /** * Integer Endianness * ------------------ */ #if defined(_WIN32) || (defined(__BYTE_ORDER__) && defined(__ORDER_LITTLE_ENDIAN__) && \ (__BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__)) /* little endian detected */ # define UA_BINARY_OVERLAYABLE_INTEGER true #elif defined(__ANDROID__) /* Andoid */ # include # if __BYTE_ORDER == __LITTLE_ENDIAN # define UA_BINARY_OVERLAYABLE_INTEGER true # endif #elif defined(__linux__) /* Linux */ # include # if __BYTE_ORDER == __LITTLE_ENDIAN # define UA_BINARY_OVERLAYABLE_INTEGER true # endif # if __FLOAT_BYTE_ORDER == __LITTLE_ENDIAN # define UA_BINARY_OVERLAYABLE_FLOAT true # endif #elif defined(__OpenBSD__) /* OpenBSD */ # include # if BYTE_ORDER == LITTLE_ENDIAN # define UA_BINARY_OVERLAYABLE_INTEGER true # endif #elif defined(__NetBSD__) || defined(__FreeBSD__) || defined(__DragonFly__) /* Other BSD */ # include # if _BYTE_ORDER == _LITTLE_ENDIAN # define UA_BINARY_OVERLAYABLE_INTEGER true # endif #elif defined(__APPLE__) /* Apple (MacOS, iOS) */ # include # if defined(__LITTLE_ENDIAN__) # define UA_BINARY_OVERLAYABLE_INTEGER true # endif #elif defined(__QNX__) || defined(__QNXNTO__) /* QNX */ # include # if defined(__LITTLEENDIAN__) # define UA_BINARY_OVERLAYABLE_INTEGER true # endif #endif /** * Float Endianness * ---------------- */ #if defined(_WIN32) # define UA_BINARY_OVERLAYABLE_FLOAT true #elif defined(__FLOAT_WORD_ORDER__) && defined(__ORDER_LITTLE_ENDIAN__) && \ (__FLOAT_WORD_ORDER__ == __ORDER_LITTLE_ENDIAN__) /* Defined only in GCC */ # define UA_BINARY_OVERLAYABLE_FLOAT true #endif /** * Binary Encoding Overlays * ------------------------ * Some data types have the same layout in memory as on the binary data stream. * This can be used to speed up the decoding. If we could not detect * little-endianness of integers and floats, this is not possible for types that * contain integers or floats respectively. See the definition of the * overlayable flag defined in `UA_DataType`. */ /* Demote error to a warning on clang. There is no robust way to detect float * endianness here. On x86/x86-64, floats are always in the right IEEE 754 * format. So floats are overlayable is the architecture is little-endian. */ #if defined(__clang__) # pragma GCC diagnostic push # pragma GCC diagnostic warning "-W#warnings" #endif #ifndef UA_BINARY_OVERLAYABLE_INTEGER # define UA_BINARY_OVERLAYABLE_INTEGER false # warning Slow Integer Encoding #endif #ifndef UA_BINARY_OVERLAYABLE_FLOAT # define UA_BINARY_OVERLAYABLE_FLOAT false # warning Slow Float Encoding #endif #if defined(__clang__) # pragma GCC diagnostic pop #endif /** * Embed unavailable libc functions * -------------------------------- */ #include #ifdef UA_ENABLE_EMBEDDED_LIBC void *memcpy(void *UA_RESTRICT dest, const void *UA_RESTRICT src, size_t n); void *memset(void *dest, int c, size_t n); size_t strlen(const char *s); int memcmp(const void *vl, const void *vr, size_t n); #else # include #endif #ifdef __cplusplus } // extern "C" #endif /*********************************** amalgamated original file "/home/wn/Sources/open62541-open62541-395ce48/include/ua_constants.h" ***********************************/ /* * Copyright (C) 2013-2015 the contributors as stated in the AUTHORS file * * This file is part of open62541. open62541 is free software: you can * redistribute it and/or modify it under the terms of the GNU Lesser General * Public License, version 3 (as published by the Free Software Foundation) with * a static linking exception as stated in the LICENSE file provided with * open62541. * * open62541 is distributed in the hope that it will be useful, but WITHOUT ANY * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR * A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more * details. */ #ifdef __cplusplus extern "C" { #endif /** * Standard-Defined Constants * ========================== * This section contains numerical and string constants that are defined in the * OPC UA standard. * * Attribute Id * ------------ * Every node in an OPC UA information model contains attributes depending on * the node type. Possible attributes are as follows: */ typedef enum { UA_ATTRIBUTEID_NODEID = 1, UA_ATTRIBUTEID_NODECLASS = 2, UA_ATTRIBUTEID_BROWSENAME = 3, UA_ATTRIBUTEID_DISPLAYNAME = 4, UA_ATTRIBUTEID_DESCRIPTION = 5, UA_ATTRIBUTEID_WRITEMASK = 6, UA_ATTRIBUTEID_USERWRITEMASK = 7, UA_ATTRIBUTEID_ISABSTRACT = 8, UA_ATTRIBUTEID_SYMMETRIC = 9, UA_ATTRIBUTEID_INVERSENAME = 10, UA_ATTRIBUTEID_CONTAINSNOLOOPS = 11, UA_ATTRIBUTEID_EVENTNOTIFIER = 12, UA_ATTRIBUTEID_VALUE = 13, UA_ATTRIBUTEID_DATATYPE = 14, UA_ATTRIBUTEID_VALUERANK = 15, UA_ATTRIBUTEID_ARRAYDIMENSIONS = 16, UA_ATTRIBUTEID_ACCESSLEVEL = 17, UA_ATTRIBUTEID_USERACCESSLEVEL = 18, UA_ATTRIBUTEID_MINIMUMSAMPLINGINTERVAL = 19, UA_ATTRIBUTEID_HISTORIZING = 20, UA_ATTRIBUTEID_EXECUTABLE = 21, UA_ATTRIBUTEID_USEREXECUTABLE = 22 } UA_AttributeId; /** * Access Level Masks * ------------------ * The access level to a node is given by the following constants that are XORed * for the overall access level. */ #define UA_ACCESSLEVELMASK_READ 0x01 #define UA_ACCESSLEVELMASK_WRITE 0x02 #define UA_ACCESSLEVELMASK_HISTORYREAD 0x4 #define UA_ACCESSLEVELMASK_HISTORYWRITE 0x08 #define UA_ACCESSLEVELMASK_SEMANTICCHANGE 0x10 /** * Encoding Offsets * ---------------- * Subtract from the typeid of the encoding nodeids to get to the type * definition. */ #define UA_ENCODINGOFFSET_XML 1 #define UA_ENCODINGOFFSET_BINARY 2 /** * .. _statuscodes: * * StatusCodes * ----------- * StatusCodes are extensively used in the OPC UA protocol and in the open62541 * API. They are represented by the :ref:`statuscode` data type. The following * definitions are autogenerated from the ``Opc.Ua.StatusCodes.csv`` file provided * with the OPC UA standard. */ #define UA_STATUSCODE_GOOD 0x00 #define UA_STATUSCODE_BADUNEXPECTEDERROR 0x80010000 // An unexpected error occurred. #define UA_STATUSCODE_BADINTERNALERROR 0x80020000 // An internal error occurred as a result of a programming or configuration error. #define UA_STATUSCODE_BADOUTOFMEMORY 0x80030000 // Not enough memory to complete the operation. #define UA_STATUSCODE_BADRESOURCEUNAVAILABLE 0x80040000 // An operating system resource is not available. #define UA_STATUSCODE_BADCOMMUNICATIONERROR 0x80050000 // A low level communication error occurred. #define UA_STATUSCODE_BADENCODINGERROR 0x80060000 // Encoding halted because of invalid data in the objects being serialized. #define UA_STATUSCODE_BADDECODINGERROR 0x80070000 // Decoding halted because of invalid data in the stream. #define UA_STATUSCODE_BADENCODINGLIMITSEXCEEDED 0x80080000 // The message encoding/decoding limits imposed by the stack have been exceeded. #define UA_STATUSCODE_BADREQUESTTOOLARGE 0x80b80000 // The request message size exceeds limits set by the server. #define UA_STATUSCODE_BADRESPONSETOOLARGE 0x80b90000 // The response message size exceeds limits set by the client. #define UA_STATUSCODE_BADUNKNOWNRESPONSE 0x80090000 // An unrecognized response was received from the server. #define UA_STATUSCODE_BADTIMEOUT 0x800a0000 // The operation timed out. #define UA_STATUSCODE_BADSERVICEUNSUPPORTED 0x800b0000 // The server does not support the requested service. #define UA_STATUSCODE_BADSHUTDOWN 0x800c0000 // The operation was cancelled because the application is shutting down. #define UA_STATUSCODE_BADSERVERNOTCONNECTED 0x800d0000 // The operation could not complete because the client is not connected to the server. #define UA_STATUSCODE_BADSERVERHALTED 0x800e0000 // The server has stopped and cannot process any requests. #define UA_STATUSCODE_BADNOTHINGTODO 0x800f0000 // There was nothing to do because the client passed a list of operations with no elements. #define UA_STATUSCODE_BADTOOMANYOPERATIONS 0x80100000 // The request could not be processed because it specified too many operations. #define UA_STATUSCODE_BADTOOMANYMONITOREDITEMS 0x80db0000 // The request could not be processed because there are too many monitored items in the subscription. #define UA_STATUSCODE_BADDATATYPEIDUNKNOWN 0x80110000 // The extension object cannot be (de)serialized because the data type id is not recognized. #define UA_STATUSCODE_BADCERTIFICATEINVALID 0x80120000 // The certificate provided as a parameter is not valid. #define UA_STATUSCODE_BADSECURITYCHECKSFAILED 0x80130000 // An error occurred verifying security. #define UA_STATUSCODE_BADCERTIFICATETIMEINVALID 0x80140000 // The Certificate has expired or is not yet valid. #define UA_STATUSCODE_BADCERTIFICATEISSUERTIMEINVALID 0x80150000 // An Issuer Certificate has expired or is not yet valid. #define UA_STATUSCODE_BADCERTIFICATEHOSTNAMEINVALID 0x80160000 // The HostName used to connect to a Server does not match a HostName in the Certificate. #define UA_STATUSCODE_BADCERTIFICATEURIINVALID 0x80170000 // The URI specified in the ApplicationDescription does not match the URI in the Certificate. #define UA_STATUSCODE_BADCERTIFICATEUSENOTALLOWED 0x80180000 // The Certificate may not be used for the requested operation. #define UA_STATUSCODE_BADCERTIFICATEISSUERUSENOTALLOWED 0x80190000 // The Issuer Certificate may not be used for the requested operation. #define UA_STATUSCODE_BADCERTIFICATEUNTRUSTED 0x801a0000 // The Certificate is not trusted. #define UA_STATUSCODE_BADCERTIFICATEREVOCATIONUNKNOWN 0x801b0000 // It was not possible to determine if the Certificate has been revoked. #define UA_STATUSCODE_BADCERTIFICATEISSUERREVOCATIONUNKNOWN 0x801c0000 // It was not possible to determine if the Issuer Certificate has been revoked. #define UA_STATUSCODE_BADCERTIFICATEREVOKED 0x801d0000 // The Certificate has been revoked. #define UA_STATUSCODE_BADCERTIFICATEISSUERREVOKED 0x801e0000 // The Issuer Certificate has been revoked. #define UA_STATUSCODE_BADUSERACCESSDENIED 0x801f0000 // User does not have permission to perform the requested operation. #define UA_STATUSCODE_BADIDENTITYTOKENINVALID 0x80200000 // The user identity token is not valid. #define UA_STATUSCODE_BADIDENTITYTOKENREJECTED 0x80210000 // The user identity token is valid but the server has rejected it. #define UA_STATUSCODE_BADSECURECHANNELIDINVALID 0x80220000 // The specified secure channel is no longer valid. #define UA_STATUSCODE_BADINVALIDTIMESTAMP 0x80230000 // The timestamp is outside the range allowed by the server. #define UA_STATUSCODE_BADNONCEINVALID 0x80240000 // The nonce does appear to be not a random value or it is not the correct length. #define UA_STATUSCODE_BADSESSIONIDINVALID 0x80250000 // The session id is not valid. #define UA_STATUSCODE_BADSESSIONCLOSED 0x80260000 // The session was closed by the client. #define UA_STATUSCODE_BADSESSIONNOTACTIVATED 0x80270000 // The session cannot be used because ActivateSession has not been called. #define UA_STATUSCODE_BADSUBSCRIPTIONIDINVALID 0x80280000 // The subscription id is not valid. #define UA_STATUSCODE_BADREQUESTHEADERINVALID 0x802a0000 // The header for the request is missing or invalid. #define UA_STATUSCODE_BADTIMESTAMPSTORETURNINVALID 0x802b0000 // The timestamps to return parameter is invalid. #define UA_STATUSCODE_BADREQUESTCANCELLEDBYCLIENT 0x802c0000 // The request was cancelled by the client. #define UA_STATUSCODE_GOODSUBSCRIPTIONTRANSFERRED 0x002d0000 // The subscription was transferred to another session. #define UA_STATUSCODE_GOODCOMPLETESASYNCHRONOUSLY 0x002e0000 // The processing will complete asynchronously. #define UA_STATUSCODE_GOODOVERLOAD 0x002f0000 // Sampling has slowed down due to resource limitations. #define UA_STATUSCODE_GOODCLAMPED 0x00300000 // The value written was accepted but was clamped. #define UA_STATUSCODE_BADNOCOMMUNICATION 0x80310000 // Communication with the data source is defined, but not established and there is no last known value available. #define UA_STATUSCODE_BADWAITINGFORINITIALDATA 0x80320000 // Waiting for the server to obtain values from the underlying data source. #define UA_STATUSCODE_BADNODEIDINVALID 0x80330000 // The syntax of the node id is not valid. #define UA_STATUSCODE_BADNODEIDUNKNOWN 0x80340000 // The node id refers to a node that does not exist in the server address space. #define UA_STATUSCODE_BADATTRIBUTEIDINVALID 0x80350000 // The attribute is not supported for the specified Node. #define UA_STATUSCODE_BADINDEXRANGEINVALID 0x80360000 // The syntax of the index range parameter is invalid. #define UA_STATUSCODE_BADINDEXRANGENODATA 0x80370000 // No data exists within the range of indexes specified. #define UA_STATUSCODE_BADDATAENCODINGINVALID 0x80380000 // The data encoding is invalid. #define UA_STATUSCODE_BADDATAENCODINGUNSUPPORTED 0x80390000 // The server does not support the requested data encoding for the node. #define UA_STATUSCODE_BADNOTREADABLE 0x803a0000 // The access level does not allow reading or subscribing to the Node. #define UA_STATUSCODE_BADNOTWRITABLE 0x803b0000 // The access level does not allow writing to the Node. #define UA_STATUSCODE_BADOUTOFRANGE 0x803c0000 // The value was out of range. #define UA_STATUSCODE_BADNOTSUPPORTED 0x803d0000 // The requested operation is not supported. #define UA_STATUSCODE_BADNOTFOUND 0x803e0000 // A requested item was not found or a search operation ended without success. #define UA_STATUSCODE_BADOBJECTDELETED 0x803f0000 // The object cannot be used because it has been deleted. #define UA_STATUSCODE_BADNOTIMPLEMENTED 0x80400000 // Requested operation is not implemented. #define UA_STATUSCODE_BADMONITORINGMODEINVALID 0x80410000 // The monitoring mode is invalid. #define UA_STATUSCODE_BADMONITOREDITEMIDINVALID 0x80420000 // The monitoring item id does not refer to a valid monitored item. #define UA_STATUSCODE_BADMONITOREDITEMFILTERINVALID 0x80430000 // The monitored item filter parameter is not valid. #define UA_STATUSCODE_BADMONITOREDITEMFILTERUNSUPPORTED 0x80440000 // The server does not support the requested monitored item filter. #define UA_STATUSCODE_BADFILTERNOTALLOWED 0x80450000 // A monitoring filter cannot be used in combination with the attribute specified. #define UA_STATUSCODE_BADSTRUCTUREMISSING 0x80460000 // A mandatory structured parameter was missing or null. #define UA_STATUSCODE_BADEVENTFILTERINVALID 0x80470000 // The event filter is not valid. #define UA_STATUSCODE_BADCONTENTFILTERINVALID 0x80480000 // The content filter is not valid. #define UA_STATUSCODE_BADFILTEROPERATORINVALID 0x80c10000 // An unrecognized operator was provided in a filter. #define UA_STATUSCODE_BADFILTEROPERATORUNSUPPORTED 0x80c20000 // A valid operator was provided but the server does not provide support for this filter operator. #define UA_STATUSCODE_BADFILTEROPERANDCOUNTMISMATCH 0x80c30000 // The number of operands provided for the filter operator was less then expected for the operand provided. #define UA_STATUSCODE_BADFILTEROPERANDINVALID 0x80490000 // The operand used in a content filter is not valid. #define UA_STATUSCODE_BADFILTERELEMENTINVALID 0x80c40000 // The referenced element is not a valid element in the content filter. #define UA_STATUSCODE_BADFILTERLITERALINVALID 0x80c50000 // The referenced literal is not a valid value. #define UA_STATUSCODE_BADCONTINUATIONPOINTINVALID 0x804a0000 // The continuation point provide is longer valid. #define UA_STATUSCODE_BADNOCONTINUATIONPOINTS 0x804b0000 // The operation could not be processed because all continuation points have been allocated. #define UA_STATUSCODE_BADREFERENCETYPEIDINVALID 0x804c0000 // The operation could not be processed because all continuation points have been allocated. #define UA_STATUSCODE_BADBROWSEDIRECTIONINVALID 0x804d0000 // The browse direction is not valid. #define UA_STATUSCODE_BADNODENOTINVIEW 0x804e0000 // The node is not part of the view. #define UA_STATUSCODE_BADSERVERURIINVALID 0x804f0000 // The ServerUri is not a valid URI. #define UA_STATUSCODE_BADSERVERNAMEMISSING 0x80500000 // No ServerName was specified. #define UA_STATUSCODE_BADDISCOVERYURLMISSING 0x80510000 // No DiscoveryUrl was specified. #define UA_STATUSCODE_BADSEMPAHOREFILEMISSING 0x80520000 // The semaphore file specified by the client is not valid. #define UA_STATUSCODE_BADREQUESTTYPEINVALID 0x80530000 // The security token request type is not valid. #define UA_STATUSCODE_BADSECURITYMODEREJECTED 0x80540000 // The security mode does not meet the requirements set by the Server. #define UA_STATUSCODE_BADSECURITYPOLICYREJECTED 0x80550000 // The security policy does not meet the requirements set by the Server. #define UA_STATUSCODE_BADTOOMANYSESSIONS 0x80560000 // The server has reached its maximum number of sessions. #define UA_STATUSCODE_BADUSERSIGNATUREINVALID 0x80570000 // The user token signature is missing or invalid. #define UA_STATUSCODE_BADAPPLICATIONSIGNATUREINVALID 0x80580000 // The signature generated with the client certificate is missing or invalid. #define UA_STATUSCODE_BADNOVALIDCERTIFICATES 0x80590000 // The client did not provide at least one software certificate that is valid and meets the profile requirements for the server. #define UA_STATUSCODE_BADIDENTITYCHANGENOTSUPPORTED 0x80c60000 // The Server does not support changing the user identity assigned to the session. #define UA_STATUSCODE_BADREQUESTCANCELLEDBYREQUEST 0x805a0000 // The request was canceled by the client with the Cancel service. #define UA_STATUSCODE_BADPARENTNODEIDINVALID 0x805b0000 // The parent node id does not to refer to a valid node. #define UA_STATUSCODE_BADREFERENCENOTALLOWED 0x805c0000 // The reference could not be created because it violates constraints imposed by the data model. #define UA_STATUSCODE_BADNODEIDREJECTED 0x805d0000 // The requested node id was reject because it was either invalid or server does not allow node ids to be specified by the client. #define UA_STATUSCODE_BADNODEIDEXISTS 0x805e0000 // The requested node id is already used by another node. #define UA_STATUSCODE_BADNODECLASSINVALID 0x805f0000 // The node class is not valid. #define UA_STATUSCODE_BADBROWSENAMEINVALID 0x80600000 // The browse name is invalid. #define UA_STATUSCODE_BADBROWSENAMEDUPLICATED 0x80610000 // The browse name is not unique among nodes that share the same relationship with the parent. #define UA_STATUSCODE_BADNODEATTRIBUTESINVALID 0x80620000 // The node attributes are not valid for the node class. #define UA_STATUSCODE_BADTYPEDEFINITIONINVALID 0x80630000 // The type definition node id does not reference an appropriate type node. #define UA_STATUSCODE_BADSOURCENODEIDINVALID 0x80640000 // The source node id does not reference a valid node. #define UA_STATUSCODE_BADTARGETNODEIDINVALID 0x80650000 // The target node id does not reference a valid node. #define UA_STATUSCODE_BADDUPLICATEREFERENCENOTALLOWED 0x80660000 // The reference type between the nodes is already defined. #define UA_STATUSCODE_BADINVALIDSELFREFERENCE 0x80670000 // The server does not allow this type of self reference on this node. #define UA_STATUSCODE_BADREFERENCELOCALONLY 0x80680000 // The reference type is not valid for a reference to a remote server. #define UA_STATUSCODE_BADNODELETERIGHTS 0x80690000 // The server will not allow the node to be deleted. #define UA_STATUSCODE_UNCERTAINREFERENCENOTDELETED 0x40bc0000 // The server was not able to delete all target references. #define UA_STATUSCODE_BADSERVERINDEXINVALID 0x806a0000 // The server index is not valid. #define UA_STATUSCODE_BADVIEWIDUNKNOWN 0x806b0000 // The view id does not refer to a valid view node. #define UA_STATUSCODE_BADVIEWTIMESTAMPINVALID 0x80c90000 // The view timestamp is not available or not supported. #define UA_STATUSCODE_BADVIEWPARAMETERMISMATCH 0x80ca0000 // The view parameters are not consistent with each other. #define UA_STATUSCODE_BADVIEWVERSIONINVALID 0x80cb0000 // The view version is not available or not supported. #define UA_STATUSCODE_UNCERTAINNOTALLNODESAVAILABLE 0x40c00000 // The list of references may not be complete because the underlying system is not available. #define UA_STATUSCODE_GOODRESULTSMAYBEINCOMPLETE 0x00ba0000 // The server should have followed a reference to a node in a remote server but did not. The result set may be incomplete. #define UA_STATUSCODE_BADNOTTYPEDEFINITION 0x80c80000 // The provided Nodeid was not a type definition nodeid. #define UA_STATUSCODE_UNCERTAINREFERENCEOUTOFSERVER 0x406c0000 // One of the references to follow in the relative path references to a node in the address space in another server. #define UA_STATUSCODE_BADTOOMANYMATCHES 0x806d0000 // The requested operation has too many matches to return. #define UA_STATUSCODE_BADQUERYTOOCOMPLEX 0x806e0000 // The requested operation requires too many resources in the server. #define UA_STATUSCODE_BADNOMATCH 0x806f0000 // The requested operation has no match to return. #define UA_STATUSCODE_BADMAXAGEINVALID 0x80700000 // The max age parameter is invalid. #define UA_STATUSCODE_BADHISTORYOPERATIONINVALID 0x80710000 // The history details parameter is not valid. #define UA_STATUSCODE_BADHISTORYOPERATIONUNSUPPORTED 0x80720000 // The server does not support the requested operation. #define UA_STATUSCODE_BADINVALIDTIMESTAMPARGUMENT 0x80bd0000 // The defined timestamp to return was invalid. #define UA_STATUSCODE_BADWRITENOTSUPPORTED 0x80730000 // The server not does support writing the combination of value status and timestamps provided. #define UA_STATUSCODE_BADTYPEMISMATCH 0x80740000 // The value supplied for the attribute is not of the same type as the attribute's value. #define UA_STATUSCODE_BADMETHODINVALID 0x80750000 // The method id does not refer to a method for the specified object. #define UA_STATUSCODE_BADARGUMENTSMISSING 0x80760000 // The client did not specify all of the input arguments for the method. #define UA_STATUSCODE_BADTOOMANYSUBSCRIPTIONS 0x80770000 // The server has reached its maximum number of subscriptions. #define UA_STATUSCODE_BADTOOMANYPUBLISHREQUESTS 0x80780000 // The server has reached the maximum number of queued publish requests. #define UA_STATUSCODE_BADNOSUBSCRIPTION 0x80790000 // There is no subscription available for this session. #define UA_STATUSCODE_BADSEQUENCENUMBERUNKNOWN 0x807a0000 // The sequence number is unknown to the server. #define UA_STATUSCODE_BADMESSAGENOTAVAILABLE 0x807b0000 // The requested notification message is no longer available. #define UA_STATUSCODE_BADINSUFFICIENTCLIENTPROFILE 0x807c0000 // The Client of the current Session does not support one or more Profiles that are necessary for the Subscription. #define UA_STATUSCODE_BADSTATENOTACTIVE 0x80bf0000 // The sub-state machine is not currently active. #define UA_STATUSCODE_BADTCPSERVERTOOBUSY 0x807d0000 // The server cannot process the request because it is too busy. #define UA_STATUSCODE_BADTCPMESSAGETYPEINVALID 0x807e0000 // The type of the message specified in the header invalid. #define UA_STATUSCODE_BADTCPSECURECHANNELUNKNOWN 0x807f0000 // The SecureChannelId and/or TokenId are not currently in use. #define UA_STATUSCODE_BADTCPMESSAGETOOLARGE 0x80800000 // The size of the message specified in the header is too large. #define UA_STATUSCODE_BADTCPNOTENOUGHRESOURCES 0x80810000 // There are not enough resources to process the request. #define UA_STATUSCODE_BADTCPINTERNALERROR 0x80820000 // An internal error occurred. #define UA_STATUSCODE_BADTCPENDPOINTURLINVALID 0x80830000 // The Server does not recognize the QueryString specified. #define UA_STATUSCODE_BADREQUESTINTERRUPTED 0x80840000 // The request could not be sent because of a network interruption. #define UA_STATUSCODE_BADREQUESTTIMEOUT 0x80850000 // Timeout occurred while processing the request. #define UA_STATUSCODE_BADSECURECHANNELCLOSED 0x80860000 // The secure channel has been closed. #define UA_STATUSCODE_BADSECURECHANNELTOKENUNKNOWN 0x80870000 // The token has expired or is not recognized. #define UA_STATUSCODE_BADSEQUENCENUMBERINVALID 0x80880000 // The sequence number is not valid. #define UA_STATUSCODE_BADPROTOCOLVERSIONUNSUPPORTED 0x80be0000 // The applications do not have compatible protocol versions. #define UA_STATUSCODE_BADCONFIGURATIONERROR 0x80890000 // There is a problem with the configuration that affects the usefulness of the value. #define UA_STATUSCODE_BADNOTCONNECTED 0x808a0000 // The variable should receive its value from another variable but has never been configured to do so. #define UA_STATUSCODE_BADDEVICEFAILURE 0x808b0000 // There has been a failure in the device/data source that generates the value that has affected the value. #define UA_STATUSCODE_BADSENSORFAILURE 0x808c0000 // There has been a failure in the sensor from which the value is derived by the device/data source. #define UA_STATUSCODE_BADOUTOFSERVICE 0x808d0000 // The source of the data is not operational. #define UA_STATUSCODE_BADDEADBANDFILTERINVALID 0x808e0000 // The deadband filter is not valid. #define UA_STATUSCODE_UNCERTAINNOCOMMUNICATIONLASTUSABLEVALUE 0x408f0000 // Communication to the data source has failed. The variable value is the last value that had a good quality. #define UA_STATUSCODE_UNCERTAINLASTUSABLEVALUE 0x40900000 // Whatever was updating this value has stopped doing so. #define UA_STATUSCODE_UNCERTAINSUBSTITUTEVALUE 0x40910000 // The value is an operational value that was manually overwritten. #define UA_STATUSCODE_UNCERTAININITIALVALUE 0x40920000 // The value is an initial value for a variable that normally receives its value from another variable. #define UA_STATUSCODE_UNCERTAINSENSORNOTACCURATE 0x40930000 // The value is at one of the sensor limits. #define UA_STATUSCODE_UNCERTAINENGINEERINGUNITSEXCEEDED 0x40940000 // The value is outside of the range of values defined for this parameter. #define UA_STATUSCODE_UNCERTAINSUBNORMAL 0x40950000 // The value is derived from multiple sources and has less than the required number of Good sources. #define UA_STATUSCODE_GOODLOCALOVERRIDE 0x00960000 // The value has been overridden. #define UA_STATUSCODE_BADREFRESHINPROGRESS 0x80970000 // This Condition refresh failed a Condition refresh operation is already in progress. #define UA_STATUSCODE_BADCONDITIONALREADYDISABLED 0x80980000 // This condition has already been disabled. #define UA_STATUSCODE_BADCONDITIONALREADYENABLED 0x80cc0000 // This condition has already been enabled. #define UA_STATUSCODE_BADCONDITIONDISABLED 0x80990000 // Property not available this condition is disabled. #define UA_STATUSCODE_BADEVENTIDUNKNOWN 0x809a0000 // The specified event id is not recognized. #define UA_STATUSCODE_BADEVENTNOTACKNOWLEDGEABLE 0x80bb0000 // The event cannot be acknowledged. #define UA_STATUSCODE_BADDIALOGNOTACTIVE 0x80cd0000 // The dialog condition is not active. #define UA_STATUSCODE_BADDIALOGRESPONSEINVALID 0x80ce0000 // The response is not valid for the dialog. #define UA_STATUSCODE_BADCONDITIONBRANCHALREADYACKED 0x80cf0000 // The condition branch has already been acknowledged. #define UA_STATUSCODE_BADCONDITIONBRANCHALREADYCONFIRMED 0x80d00000 // The condition branch has already been confirmed. #define UA_STATUSCODE_BADCONDITIONALREADYSHELVED 0x80d10000 // The condition has already been shelved. #define UA_STATUSCODE_BADCONDITIONNOTSHELVED 0x80d20000 // The condition is not currently shelved. #define UA_STATUSCODE_BADSHELVINGTIMEOUTOFRANGE 0x80d30000 // The shelving time not within an acceptable range. #define UA_STATUSCODE_BADNODATA 0x809b0000 // No data exists for the requested time range or event filter. #define UA_STATUSCODE_BADBOUNDNOTFOUND 0x80d70000 // No data found to provide upper or lower bound value. #define UA_STATUSCODE_BADBOUNDNOTSUPPORTED 0x80d80000 // The server cannot retrieve a bound for the variable. #define UA_STATUSCODE_BADDATALOST 0x809d0000 // Data is missing due to collection started/stopped/lost. #define UA_STATUSCODE_BADDATAUNAVAILABLE 0x809e0000 // Expected data is unavailable for the requested time range due to an un-mounted volume, an off-line archive or tape or similar reason for temporary unavailability. #define UA_STATUSCODE_BADENTRYEXISTS 0x809f0000 // The data or event was not successfully inserted because a matching entry exists. #define UA_STATUSCODE_BADNOENTRYEXISTS 0x80a00000 // The data or event was not successfully updated because no matching entry exists. #define UA_STATUSCODE_BADTIMESTAMPNOTSUPPORTED 0x80a10000 // The client requested history using a timestamp format the server does not support (i.e requested ServerTimestamp when server only supports SourceTimestamp). #define UA_STATUSCODE_GOODENTRYINSERTED 0x00a20000 // The data or event was successfully inserted into the historical database. #define UA_STATUSCODE_GOODENTRYREPLACED 0x00a30000 // The data or event field was successfully replaced in the historical database. #define UA_STATUSCODE_UNCERTAINDATASUBNORMAL 0x40a40000 // The value is derived from multiple values and has less than the required number of Good values. #define UA_STATUSCODE_GOODNODATA 0x00a50000 // No data exists for the requested time range or event filter. #define UA_STATUSCODE_GOODMOREDATA 0x00a60000 // The data or event field was successfully replaced in the historical database. #define UA_STATUSCODE_BADAGGREGATELISTMISMATCH 0x80d40000 // The requested number of Aggregates does not match the requested number of NodeIds. #define UA_STATUSCODE_BADAGGREGATENOTSUPPORTED 0x80d50000 // The requested Aggregate is not support by the server. #define UA_STATUSCODE_BADAGGREGATEINVALIDINPUTS 0x80d60000 // The aggregate value could not be derived due to invalid data inputs. #define UA_STATUSCODE_BADAGGREGATECONFIGURATIONREJECTED 0x80da0000 // The aggregate configuration is not valid for specified node. #define UA_STATUSCODE_GOODDATAIGNORED 0x00d90000 // The request specifies fields which are not valid for the EventType or cannot be saved by the historian. #define UA_STATUSCODE_GOODCOMMUNICATIONEVENT 0x00a70000 // The communication layer has raised an event. #define UA_STATUSCODE_GOODSHUTDOWNEVENT 0x00a80000 // The system is shutting down. #define UA_STATUSCODE_GOODCALLAGAIN 0x00a90000 // The operation is not finished and needs to be called again. #define UA_STATUSCODE_GOODNONCRITICALTIMEOUT 0x00aa0000 // A non-critical timeout occurred. #define UA_STATUSCODE_BADINVALIDARGUMENT 0x80ab0000 // One or more arguments are invalid. #define UA_STATUSCODE_BADCONNECTIONREJECTED 0x80ac0000 // Could not establish a network connection to remote server. #define UA_STATUSCODE_BADDISCONNECT 0x80ad0000 // The server has disconnected from the client. #define UA_STATUSCODE_BADCONNECTIONCLOSED 0x80ae0000 // The network connection has been closed. #define UA_STATUSCODE_BADINVALIDSTATE 0x80af0000 // The operation cannot be completed because the object is closed uninitialized or in some other invalid state. #define UA_STATUSCODE_BADENDOFSTREAM 0x80b00000 // Cannot move beyond end of the stream. #define UA_STATUSCODE_BADNODATAAVAILABLE 0x80b10000 // No data is currently available for reading from a non-blocking stream. #define UA_STATUSCODE_BADWAITINGFORRESPONSE 0x80b20000 // The asynchronous operation is waiting for a response. #define UA_STATUSCODE_BADOPERATIONABANDONED 0x80b30000 // The asynchronous operation was abandoned by the caller. #define UA_STATUSCODE_BADEXPECTEDSTREAMTOBLOCK 0x80b40000 // The stream did not return all data requested (possibly because it is a non-blocking stream). #define UA_STATUSCODE_BADWOULDBLOCK 0x80b50000 // Non blocking behaviour is required and the operation would block. #define UA_STATUSCODE_BADSYNTAXERROR 0x80b60000 // A value had an invalid syntax. #define UA_STATUSCODE_BADMAXCONNECTIONSREACHED 0x80b70000 // The operation could not be finished because all available connections are in use. #ifdef __cplusplus } // extern "C" #endif /*********************************** amalgamated original file "/home/wn/Sources/open62541-open62541-395ce48/include/ua_types.h" ***********************************/ /* * Copyright (C) 2013-2015 the contributors as stated in the AUTHORS file * * This file is part of open62541. open62541 is free software: you can * redistribute it and/or modify it under the terms of the GNU Lesser General * Public License, version 3 (as published by the Free Software Foundation) with * a static linking exception as stated in the LICENSE file provided with * open62541. * * open62541 is distributed in the hope that it will be useful, but WITHOUT ANY * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR * A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more * details. */ #ifdef __cplusplus extern "C" { #endif #include #include /** * Data Types * ========== * * In open62541, all data types share the same basic API for creation, copying * and deletion. The header ua_types.h defines the builtin types. In addition, * we auto-generate ua_types_generated.h with additional types as well as the * following function definitions for all (builtin and generated) data types * ``T``. * * ``void T_init(T *ptr)`` * Initialize the data type. This is synonymous with zeroing out the memory, * i.e. ``memset(dataptr, 0, sizeof(T))``. * ``T* T_new()`` * Allocate and return the memory for the data type. The memory is already initialized. * ``UA_StatusCode T_copy(const T *src, T *dst)`` * Copy the content of the data type. Returns ``UA_STATUSCODE_GOOD`` or * ``UA_STATUSCODE_BADOUTOFMEMORY``. * ``void T_deleteMembers(T *ptr)`` * Delete the dynamically allocated content of the data type, but not the data type itself. * ``void T_delete(T *ptr)`` * Delete the content of the data type and the memory for the data type itself. * * OPC UA defines 25 builtin data types. All other data types are combinations * of the 25 builtin data types. */ #define UA_BUILTIN_TYPES_COUNT 25U /** * Builtin Types Part 1 * -------------------- * * Boolean * ^^^^^^^ * A two-state logical value (true or false). */ typedef bool UA_Boolean; #define UA_TRUE true #define UA_FALSE false /** * SByte * ^^^^^ * An integer value between -128 and 127. */ typedef int8_t UA_SByte; #define UA_SBYTE_MAX 127 #define UA_SBYTE_MIN (-128) /** * Byte * ^^^^ * An integer value between 0 and 256. */ typedef uint8_t UA_Byte; #define UA_BYTE_MAX 256 #define UA_BYTE_MIN 0 /** * Int16 * ^^^^^ * An integer value between -32 768 and 32 767. */ typedef int16_t UA_Int16; #define UA_INT16_MAX 32767 #define UA_INT16_MIN (-32768) /** * UInt16 * ^^^^^^ * An integer value between 0 and 65 535. */ typedef uint16_t UA_UInt16; #define UA_UINT16_MAX 65535 #define UA_UINT16_MIN 0 /** * Int32 * ^^^^^ * An integer value between -2 147 483 648 and 2 147 483 647. */ typedef int32_t UA_Int32; #define UA_INT32_MAX 2147483647 #define UA_INT32_MIN (-2147483648) /** * UInt32 * ^^^^^^ * An integer value between 0 and 4 294 967 295. */ typedef uint32_t UA_UInt32; #define UA_UINT32_MAX 4294967295 #define UA_UINT32_MIN 0 /** * Int64 * ^^^^^ * An integer value between -10 223 372 036 854 775 808 and 9 223 372 036 854 775 807. */ typedef int64_t UA_Int64; #define UA_INT64_MAX (int64_t)9223372036854775807 #define UA_INT64_MIN ((int64_t)-9223372036854775808) /** * UInt64 * ^^^^^^ * An integer value between 0 and 18 446 744 073 709 551 615. */ typedef uint64_t UA_UInt64; #define UA_UINT64_MAX (int64_t)18446744073709551615 #define UA_UINT64_MIN (int64_t)0 /** * Float * ^^^^^ * An IEEE single precision (32 bit) floating point value. */ typedef float UA_Float; /** * Double * ^^^^^^ * An IEEE double precision (64 bit) floating point value. */ typedef double UA_Double; /** * .. _statuscode: * * StatusCode * ^^^^^^^^^^ * A numeric identifier for a error or condition that is associated with a value or an * operation. See the section :ref:`statuscodes` for the meaning of a specific code. */ typedef uint32_t UA_StatusCode; /** * Array handling * -------------- * In OPC UA, arrays can have a length of zero or more with the usual meaning. * In addition, arrays can be undefined. Then, they don't even have a length. In * the binary encoding, this is indicated by an array of length -1. * * In open62541 however, we use ``size_t`` for array lengths. An undefined array * has length 0 and the data pointer is NULL. An array of length 0 also has * length 0 but points to a sentinel memory address. */ #define UA_EMPTY_ARRAY_SENTINEL ((void*)0x01) /** Forward Declaration of UA_DataType. See Section `Generic Type Handling`_ for details. */ struct UA_DataType; typedef struct UA_DataType UA_DataType; /** The following functions are used for handling arrays of any data type. */ /* Allocates and initializes an array of variables of a specific type * * @param size The requested array length * @param type The datatype description * @return Returns the memory location of the variable or (void*)0 if no memory could be allocated */ void UA_EXPORT * UA_Array_new(size_t size, const UA_DataType *type) UA_FUNC_ATTR_MALLOC; /* Allocates and copies an array * * @param src The memory location of the source array * @param size The size of the array * @param dst The location of the pointer to the new array * @param type The datatype of the array members * @return Returns UA_STATUSCODE_GOOD or UA_STATUSCODE_BADOUTOFMEMORY */ UA_StatusCode UA_EXPORT UA_Array_copy(const void *src, size_t size, void **dst, const UA_DataType *type) UA_FUNC_ATTR_WARN_UNUSED_RESULT; /* Deletes an array. * * @param p The memory location of the array * @param size The size of the array * @param type The datatype of the array members */ void UA_EXPORT UA_Array_delete(void *p, size_t size, const UA_DataType *type); /** * Builtin Types, Part 2 * --------------------- * * String * ^^^^^^ * A sequence of Unicode characters. Strings are just an array of UA_Byte. */ typedef struct { size_t length; /* The length of the string */ UA_Byte *data; /* The content (not null-terminated) */ } UA_String; /* Copies the content on the heap. Returns a null-string when alloc fails */ UA_String UA_EXPORT UA_String_fromChars(char const src[]) UA_FUNC_ATTR_WARN_UNUSED_RESULT; UA_Boolean UA_EXPORT UA_String_equal(const UA_String *s1, const UA_String *s2); UA_EXPORT extern const UA_String UA_STRING_NULL; /** * ``UA_STRING`` returns a string pointing to the preallocated char-array. * ``UA_STRING_ALLOC`` is shorthand for ``UA_String_fromChars`` and makes a copy * of the char-array. */ static UA_INLINE UA_String UA_STRING(char *chars) { UA_String str; str.length = strlen(chars); str.data = (UA_Byte*)chars; return str; } #define UA_STRING_ALLOC(CHARS) UA_String_fromChars(CHARS) /** * DateTime * ^^^^^^^^ * An instance in time. A DateTime value is encoded as a 64-bit signed integer * which represents the number of 100 nanosecond intervals since January 1, 1601 * (UTC). */ typedef int64_t UA_DateTime; /* Multiply to convert units for time difference computations */ #define UA_USEC_TO_DATETIME 10LL #define UA_MSEC_TO_DATETIME (UA_USEC_TO_DATETIME * 1000LL) #define UA_SEC_TO_DATETIME (UA_MSEC_TO_DATETIME * 1000LL) /* Datetime of 1 Jan 1970 00:00 UTC */ #define UA_DATETIME_UNIX_EPOCH (11644473600LL * UA_SEC_TO_DATETIME) /* The current time */ UA_DateTime UA_EXPORT UA_DateTime_now(void); /* CPU clock invariant to system time changes. Use only for time diffs, not current time */ UA_DateTime UA_EXPORT UA_DateTime_nowMonotonic(void); typedef struct UA_DateTimeStruct { UA_UInt16 nanoSec; UA_UInt16 microSec; UA_UInt16 milliSec; UA_UInt16 sec; UA_UInt16 min; UA_UInt16 hour; UA_UInt16 day; UA_UInt16 month; UA_UInt16 year; } UA_DateTimeStruct; UA_DateTimeStruct UA_EXPORT UA_DateTime_toStruct(UA_DateTime t); UA_String UA_EXPORT UA_DateTime_toString(UA_DateTime t); /** * Guid * ^^^^ * A 16 byte value that can be used as a globally unique identifier. */ typedef struct { UA_UInt32 data1; UA_UInt16 data2; UA_UInt16 data3; UA_Byte data4[8]; } UA_Guid; UA_Boolean UA_EXPORT UA_Guid_equal(const UA_Guid *g1, const UA_Guid *g2); /** * ByteString * ^^^^^^^^^^ * A sequence of octets. */ typedef UA_String UA_ByteString; static UA_INLINE UA_Boolean UA_ByteString_equal(const UA_ByteString *string1, const UA_ByteString *string2) { return UA_String_equal((const UA_String*)string1, (const UA_String*)string2); } /* Allocates memory of size length for the bytestring. The content is not set to zero. */ UA_StatusCode UA_EXPORT UA_ByteString_allocBuffer(UA_ByteString *bs, size_t length); UA_EXPORT extern const UA_ByteString UA_BYTESTRING_NULL; static UA_INLINE UA_ByteString UA_BYTESTRING(char *chars) { UA_ByteString str; str.length = strlen(chars); str.data = (UA_Byte*)chars; return str; } static UA_INLINE UA_ByteString UA_BYTESTRING_ALLOC(const char *chars) { UA_String str = UA_String_fromChars(chars); UA_ByteString bstr; bstr.length = str.length; bstr.data = str.data; return bstr; } /** * XmlElement * ^^^^^^^^^^ * An XML element. */ typedef UA_String UA_XmlElement; /** * NodeId * ^^^^^^ * An identifier for a node in the address space of an OPC UA Server. */ enum UA_NodeIdType { UA_NODEIDTYPE_NUMERIC = 0, /* In the binary encoding, this can also become 1 or 2 (2byte and 4byte encoding of small numeric nodeids) */ UA_NODEIDTYPE_STRING = 3, UA_NODEIDTYPE_GUID = 4, UA_NODEIDTYPE_BYTESTRING = 5 }; typedef struct { UA_UInt16 namespaceIndex; enum UA_NodeIdType identifierType; union { UA_UInt32 numeric; UA_String string; UA_Guid guid; UA_ByteString byteString; } identifier; } UA_NodeId; UA_EXPORT extern const UA_NodeId UA_NODEID_NULL; static UA_INLINE UA_Boolean UA_NodeId_isNull(const UA_NodeId *p) { return (p->namespaceIndex == 0 && p->identifierType == UA_NODEIDTYPE_NUMERIC && p->identifier.numeric == 0); } UA_Boolean UA_EXPORT UA_NodeId_equal(const UA_NodeId *n1, const UA_NodeId *n2); /** The following functions are shorthand for creating NodeIds. */ static UA_INLINE UA_NodeId UA_NODEID_NUMERIC(UA_UInt16 nsIndex, UA_UInt32 identifier) { UA_NodeId id; id.namespaceIndex = nsIndex; id.identifierType = UA_NODEIDTYPE_NUMERIC; id.identifier.numeric = identifier; return id; } static UA_INLINE UA_NodeId UA_NODEID_STRING(UA_UInt16 nsIndex, char *chars) { UA_NodeId id; id.namespaceIndex = nsIndex; id.identifierType = UA_NODEIDTYPE_STRING; id.identifier.string = UA_STRING(chars); return id; } static UA_INLINE UA_NodeId UA_NODEID_STRING_ALLOC(UA_UInt16 nsIndex, const char *chars) { UA_NodeId id; id.namespaceIndex = nsIndex; id.identifierType = UA_NODEIDTYPE_STRING; id.identifier.string = UA_STRING_ALLOC(chars); return id; } static UA_INLINE UA_NodeId UA_NODEID_GUID(UA_UInt16 nsIndex, UA_Guid guid) { UA_NodeId id; id.namespaceIndex = nsIndex; id.identifierType = UA_NODEIDTYPE_GUID; id.identifier.guid = guid; return id; } static UA_INLINE UA_NodeId UA_NODEID_BYTESTRING(UA_UInt16 nsIndex, char *chars) { UA_NodeId id; id.namespaceIndex = nsIndex; id.identifierType = UA_NODEIDTYPE_BYTESTRING; id.identifier.byteString = UA_BYTESTRING(chars); return id; } static UA_INLINE UA_NodeId UA_NODEID_BYTESTRING_ALLOC(UA_UInt16 nsIndex, const char *chars) { UA_NodeId id; id.namespaceIndex = nsIndex; id.identifierType = UA_NODEIDTYPE_BYTESTRING; id.identifier.byteString = UA_BYTESTRING_ALLOC(chars); return id; } /** * ExpandedNodeId * ^^^^^^^^^^^^^^ * A NodeId that allows the namespace URI to be specified instead of an index. */ typedef struct { UA_NodeId nodeId; UA_String namespaceUri; UA_UInt32 serverIndex; } UA_ExpandedNodeId; /** The following functions are shorthand for creating ExpandedNodeIds. */ static UA_INLINE UA_ExpandedNodeId UA_EXPANDEDNODEID_NUMERIC(UA_UInt16 nsIndex, UA_UInt32 identifier) { UA_ExpandedNodeId id; id.nodeId = UA_NODEID_NUMERIC(nsIndex, identifier); id.serverIndex = 0; id.namespaceUri = UA_STRING_NULL; return id; } static UA_INLINE UA_ExpandedNodeId UA_EXPANDEDNODEID_STRING(UA_UInt16 nsIndex, char *chars) { UA_ExpandedNodeId id; id.nodeId = UA_NODEID_STRING(nsIndex, chars); id.serverIndex = 0; id.namespaceUri = UA_STRING_NULL; return id; } static UA_INLINE UA_ExpandedNodeId UA_EXPANDEDNODEID_STRING_ALLOC(UA_UInt16 nsIndex, const char *chars) { UA_ExpandedNodeId id; id.nodeId = UA_NODEID_STRING_ALLOC(nsIndex, chars); id.serverIndex = 0; id.namespaceUri = UA_STRING_NULL; return id; } static UA_INLINE UA_ExpandedNodeId UA_EXPANDEDNODEID_STRING_GUID(UA_UInt16 nsIndex, UA_Guid guid) { UA_ExpandedNodeId id; id.nodeId = UA_NODEID_GUID(nsIndex, guid); id.serverIndex = 0; id.namespaceUri = UA_STRING_NULL; return id; } static UA_INLINE UA_ExpandedNodeId UA_EXPANDEDNODEID_BYTESTRING(UA_UInt16 nsIndex, char *chars) { UA_ExpandedNodeId id; id.nodeId = UA_NODEID_BYTESTRING(nsIndex, chars); id.serverIndex = 0; id.namespaceUri = UA_STRING_NULL; return id; } static UA_INLINE UA_ExpandedNodeId UA_EXPANDEDNODEID_BYTESTRING_ALLOC(UA_UInt16 nsIndex, const char *chars) { UA_ExpandedNodeId id; id.nodeId = UA_NODEID_BYTESTRING_ALLOC(nsIndex, chars); id.serverIndex = 0; id.namespaceUri = UA_STRING_NULL; return id; } /** * QualifiedName * ^^^^^^^^^^^^^ * A name qualified by a namespace. */ typedef struct { UA_UInt16 namespaceIndex; UA_String name; } UA_QualifiedName; static UA_INLINE UA_QualifiedName UA_QUALIFIEDNAME(UA_UInt16 nsIndex, char *chars) { UA_QualifiedName qn; qn.namespaceIndex = nsIndex; qn.name = UA_STRING(chars); return qn; } static UA_INLINE UA_QualifiedName UA_QUALIFIEDNAME_ALLOC(UA_UInt16 nsIndex, const char *chars) { UA_QualifiedName qn; qn.namespaceIndex = nsIndex; qn.name = UA_STRING_ALLOC(chars); return qn; } /** * LocalizedText * ^^^^^^^^^^^^^ * Human readable text with an optional locale identifier. */ typedef struct { UA_String locale; UA_String text; } UA_LocalizedText; static UA_INLINE UA_LocalizedText UA_LOCALIZEDTEXT(char *locale, char *text) { UA_LocalizedText lt; lt.locale = UA_STRING(locale); lt.text = UA_STRING(text); return lt; } static UA_INLINE UA_LocalizedText UA_LOCALIZEDTEXT_ALLOC(const char *locale, const char *text) { UA_LocalizedText lt; lt.locale = UA_STRING_ALLOC(locale); lt.text = UA_STRING_ALLOC(text); return lt; } /** * ExtensionObject * ^^^^^^^^^^^^^^^ * ExtensionObjects may contain scalars of any data type. Even those that are * unknown to the receiver. See the Section `Generic Type Handling`_ on how * types are described. An ExtensionObject always contains the NodeId of the * Data Type. If the data cannot be decoded, we keep the encoded string and the * NodeId. */ typedef struct { enum { UA_EXTENSIONOBJECT_ENCODED_NOBODY = 0, UA_EXTENSIONOBJECT_ENCODED_BYTESTRING = 1, UA_EXTENSIONOBJECT_ENCODED_XML = 2, UA_EXTENSIONOBJECT_DECODED = 3, UA_EXTENSIONOBJECT_DECODED_NODELETE = 4 /* Don't delete the decoded content at the lifecycle end */ } encoding; union { struct { UA_NodeId typeId; /* The nodeid of the datatype */ UA_ByteString body; /* The bytestring of the encoded data */ } encoded; struct { const UA_DataType *type; void *data; } decoded; } content; } UA_ExtensionObject; /** * Variant * ^^^^^^^ * Variants may contain data of any type. See the Section `Generic Type * Handling`_ on how types are described. If the data is not of one of the 25 * builtin types, it will be encoded as an `ExtensionObject`_ on the wire. (The * standard says that a variant is a union of the built-in types. open62541 * generalizes this to any data type by transparently de- and encoding * ExtensionObjects in the background. If the decoding fails, the variant * contains the original ExtensionObject.) * * Variants can contain a single scalar or an array. For details on the handling * of arrays, see the Section `Array Handling`_. Array variants can have an * additional dimensionality (matrix, 3-tensor, ...) defined in an array of * dimension sizes. Higher rank dimensions are serialized first. * * The differentiation between variants containing a scalar, an array or no data * is as follows: * * - arrayLength == 0 && data == NULL: no existing data * - arrayLength == 0 && data == UA_EMPTY_ARRAY_SENTINEL: array of length 0 * - arrayLength == 0 && data > UA_EMPTY_ARRAY_SENTINEL: scalar value * - arrayLength > 0: array of the given length */ typedef struct { const UA_DataType *type; /* The data type description */ enum { UA_VARIANT_DATA, /* The data has the same lifecycle as the variant */ UA_VARIANT_DATA_NODELETE, /* The data is "borrowed" by the variant and shall not be deleted at the end of the variant's lifecycle. */ } storageType; size_t arrayLength; // The number of elements in the data array void *data; // Points to the scalar or array data size_t arrayDimensionsSize; // The number of dimensions the data-array has UA_Int32 *arrayDimensions; // The length of each dimension of the data-array } UA_Variant; /* Returns true if the variant contains a scalar value. Note that empty variants contain * an array of length -1 (undefined). * * @param v The variant * @return Does the variant contain a scalar value. */ static UA_INLINE UA_Boolean UA_Variant_isScalar(const UA_Variant *v) { return (v->arrayLength == 0 && v->data > UA_EMPTY_ARRAY_SENTINEL); } /* Set the variant to a scalar value that already resides in memory. The value takes on * the lifecycle of the variant and is deleted with it. * * @param v The variant * @param p A pointer to the value data * @param type The datatype of the value in question */ void UA_EXPORT UA_Variant_setScalar(UA_Variant *v, void * UA_RESTRICT p, const UA_DataType *type); /* Set the variant to a scalar value that is copied from an existing variable. * @param v The variant * @param p A pointer to the value data * @param type The datatype of the value * @return Indicates whether the operation succeeded or returns an error code */ UA_StatusCode UA_EXPORT UA_Variant_setScalarCopy(UA_Variant *v, const void *p, const UA_DataType *type); /* Set the variant to an array that already resides in memory. The array takes on the * lifecycle of the variant and is deleted with it. * * @param v The variant * @param array A pointer to the array data * @param arraySize The size of the array * @param type The datatype of the array */ void UA_EXPORT UA_Variant_setArray(UA_Variant *v, void * UA_RESTRICT array, size_t arraySize, const UA_DataType *type); /* Set the variant to an array that is copied from an existing array. * * @param v The variant * @param array A pointer to the array data * @param arraySize The size of the array * @param type The datatype of the array * @return Indicates whether the operation succeeded or returns an error code */ UA_StatusCode UA_EXPORT UA_Variant_setArrayCopy(UA_Variant *v, const void *array, size_t arraySize, const UA_DataType *type); /** * NumericRanges are used to indicate subsets of a (multidimensional) variant * array. NumericRange has no official type structure in the standard. On the * wire, it only exists as an encoded string, such as "1:2,0:3,5". The colon * separates min/max index and the comma separates dimensions. A single value * indicates a range with a single element (min==max). */ typedef struct { size_t dimensionsSize; struct UA_NumericRangeDimension { UA_UInt32 min; UA_UInt32 max; } *dimensions; } UA_NumericRange; /* Copy the variant, but use only a subset of the (multidimensional) array into a variant. * Returns an error code if the variant is not an array or if the indicated range does not * fit. * * @param src The source variant * @param dst The target variant * @param range The range of the copied data * @return Returns UA_STATUSCODE_GOOD or an error code */ UA_StatusCode UA_EXPORT UA_Variant_copyRange(const UA_Variant *src, UA_Variant *dst, const UA_NumericRange range); /* Insert a range of data into an existing variant. The data array can't be reused afterwards if it * contains types without a fixed size (e.g. strings) since the members are moved into the variant * and take on its lifecycle. * * @param v The variant * @param dataArray The data array. The type must match the variant * @param dataArraySize The length of the data array. This is checked to match the range size. * @param range The range of where the new data is inserted * @return Returns UA_STATUSCODE_GOOD or an error code */ UA_StatusCode UA_EXPORT UA_Variant_setRange(UA_Variant *v, void * UA_RESTRICT array, size_t arraySize, const UA_NumericRange range); /* Deep-copy a range of data into an existing variant. * * @param v The variant * @param dataArray The data array. The type must match the variant * @param dataArraySize The length of the data array. This is checked to match the range size. * @param range The range of where the new data is inserted * @return Returns UA_STATUSCODE_GOOD or an error code */ UA_StatusCode UA_EXPORT UA_Variant_setRangeCopy(UA_Variant *v, const void *array, size_t arraySize, const UA_NumericRange range); /** * DataValue * ^^^^^^^^^ * A data value with an associated status code and timestamps. */ typedef struct { UA_Boolean hasValue : 1; UA_Boolean hasStatus : 1; UA_Boolean hasSourceTimestamp : 1; UA_Boolean hasServerTimestamp : 1; UA_Boolean hasSourcePicoseconds : 1; UA_Boolean hasServerPicoseconds : 1; UA_Variant value; UA_StatusCode status; UA_DateTime sourceTimestamp; UA_UInt16 sourcePicoseconds; UA_DateTime serverTimestamp; UA_UInt16 serverPicoseconds; } UA_DataValue; /** * DiagnosticInfo * ^^^^^^^^^^^^^^ * A structure that contains detailed error and diagnostic information * associated with a StatusCode. */ typedef struct UA_DiagnosticInfo { UA_Boolean hasSymbolicId : 1; UA_Boolean hasNamespaceUri : 1; UA_Boolean hasLocalizedText : 1; UA_Boolean hasLocale : 1; UA_Boolean hasAdditionalInfo : 1; UA_Boolean hasInnerStatusCode : 1; UA_Boolean hasInnerDiagnosticInfo : 1; UA_Int32 symbolicId; UA_Int32 namespaceUri; UA_Int32 localizedText; UA_Int32 locale; UA_String additionalInfo; UA_StatusCode innerStatusCode; struct UA_DiagnosticInfo *innerDiagnosticInfo; } UA_DiagnosticInfo; /** * Generic Type Handling * --------------------- * The builtin types can be combined to data structures. All information about a * (structured) data type is stored in a ``UA_DataType``. The array ``UA_TYPES`` * contains the description of all standard-defined types and is used for * handling of generic types. */ typedef struct { #ifdef UA_ENABLE_TYPENAMES const char *memberName; #endif UA_UInt16 memberTypeIndex; /* Index of the member in the array of data types */ UA_Byte padding; /* How much padding is there before this member element? For arrays this is the padding before the size_t lenght member. (No padding between size_t and the following ptr.) */ UA_Boolean namespaceZero : 1; /* The type of the member is defined in namespace zero. In this implementation, types from custom namespace may contain members from the same namespace or ns0 only.*/ UA_Boolean isArray : 1; /* The member is an array */ } UA_DataTypeMember; struct UA_DataType { #ifdef UA_ENABLE_TYPENAMES const char *typeName; #endif UA_NodeId typeId; /* The nodeid of the type */ UA_UInt16 memSize; /* Size of the struct in memory */ UA_UInt16 typeIndex; /* Index of the type in the datatypetable */ UA_Byte membersSize; /* How many members does the type have? */ UA_Boolean builtin : 1; /* The type is "builtin" and has dedicated de- and encoding functions */ UA_Boolean fixedSize : 1; /* The type (and its members) contains no pointers */ UA_Boolean overlayable : 1; /* The type has the identical memory layout in memory and on the binary stream. */ UA_DataTypeMember *members; }; /** The following functions are used for generic handling of data types. */ /* Allocates and initializes a variable of type dataType * * @param type The datatype description * @return Returns the memory location of the variable or (void*)0 if no memory is available */ void UA_EXPORT * UA_new(const UA_DataType *type) UA_FUNC_ATTR_MALLOC; /* Initializes a variable to default values * * @param p The memory location of the variable * @param type The datatype description */ static UA_INLINE void UA_init(void *p, const UA_DataType *type) { memset(p, 0, type->memSize); } /* Copies the content of two variables. If copying fails (e.g. because no memory was * available for an array), then dst is emptied and initialized to prevent memory leaks. * * @param src The memory location of the source variable * @param dst The memory location of the destination variable * @param type The datatype description * @return Indicates whether the operation succeeded or returns an error code */ UA_StatusCode UA_EXPORT UA_copy(const void *src, void *dst, const UA_DataType *type); /* Deletes the dynamically allocated content of a variable (e.g. resets all arrays to * undefined arrays). Afterwards, the variable can be safely deleted without causing * memory leaks. But the variable is not initialized and may contain old data that is not * memory-relevant. * * @param p The memory location of the variable * @param type The datatype description of the variable */ void UA_EXPORT UA_deleteMembers(void *p, const UA_DataType *type); /* Frees a variable and all of its content. * * @param p The memory location of the variable * @param type The datatype description of the variable */ void UA_EXPORT UA_delete(void *p, const UA_DataType *type); /** * Random Number Generator * ----------------------- * If UA_ENABLE_MULTITHREADING is defined, then the seed is stored in thread local * storage. The seed is initialized for every thread in the server/client. */ void UA_EXPORT UA_random_seed(UA_UInt64 seed); UA_UInt32 UA_EXPORT UA_UInt32_random(void); /* do not use for cryptographic entropy */ UA_Guid UA_EXPORT UA_Guid_random(void); /* do not use for cryptographic entropy */ #ifdef __cplusplus } // extern "C" #endif /*********************************** amalgamated original file "/home/wn/Sources/open62541-open62541-395ce48/build/src_generated/ua_nodeids.h" ***********************************/ /********************************************************** * /home/wn/Sources/open62541-open62541-395ce48/build/src_generated/ua_nodeids.hgen -- do not modify ********************************************************** * Generated from /home/wn/Sources/open62541-open62541-395ce48/tools/schema/NodeIds.csv with script /home/wn/Sources/open62541-open62541-395ce48/tools/generate_nodeids.py * on host debianX by user wn at 2016-06-07 04:48:38 **********************************************************/ #define UA_NS0ID_BOOLEAN 1 // DataType #define UA_NS0ID_SBYTE 2 // DataType #define UA_NS0ID_BYTE 3 // DataType #define UA_NS0ID_INT16 4 // DataType #define UA_NS0ID_UINT16 5 // DataType #define UA_NS0ID_INT32 6 // DataType #define UA_NS0ID_UINT32 7 // DataType #define UA_NS0ID_INT64 8 // DataType #define UA_NS0ID_UINT64 9 // DataType #define UA_NS0ID_FLOAT 10 // DataType #define UA_NS0ID_DOUBLE 11 // DataType #define UA_NS0ID_STRING 12 // DataType #define UA_NS0ID_DATETIME 13 // DataType #define UA_NS0ID_GUID 14 // DataType #define UA_NS0ID_BYTESTRING 15 // DataType #define UA_NS0ID_XMLELEMENT 16 // DataType #define UA_NS0ID_NODEID 17 // DataType #define UA_NS0ID_EXPANDEDNODEID 18 // DataType #define UA_NS0ID_STATUSCODE 19 // DataType #define UA_NS0ID_QUALIFIEDNAME 20 // DataType #define UA_NS0ID_LOCALIZEDTEXT 21 // DataType #define UA_NS0ID_STRUCTURE 22 // DataType #define UA_NS0ID_DATAVALUE 23 // DataType #define UA_NS0ID_BASEDATATYPE 24 // DataType #define UA_NS0ID_DIAGNOSTICINFO 25 // DataType #define UA_NS0ID_NUMBER 26 // DataType #define UA_NS0ID_INTEGER 27 // DataType #define UA_NS0ID_UINTEGER 28 // DataType #define UA_NS0ID_ENUMERATION 29 // DataType #define UA_NS0ID_IMAGE 30 // DataType #define UA_NS0ID_REFERENCES 31 // ReferenceType #define UA_NS0ID_NONHIERARCHICALREFERENCES 32 // ReferenceType #define UA_NS0ID_HIERARCHICALREFERENCES 33 // ReferenceType #define UA_NS0ID_HASCHILD 34 // ReferenceType #define UA_NS0ID_ORGANIZES 35 // ReferenceType #define UA_NS0ID_HASEVENTSOURCE 36 // ReferenceType #define UA_NS0ID_HASMODELLINGRULE 37 // ReferenceType #define UA_NS0ID_HASENCODING 38 // ReferenceType #define UA_NS0ID_HASDESCRIPTION 39 // ReferenceType #define UA_NS0ID_HASTYPEDEFINITION 40 // ReferenceType #define UA_NS0ID_GENERATESEVENT 41 // ReferenceType #define UA_NS0ID_AGGREGATES 44 // ReferenceType #define UA_NS0ID_HASSUBTYPE 45 // ReferenceType #define UA_NS0ID_HASPROPERTY 46 // ReferenceType #define UA_NS0ID_HASCOMPONENT 47 // ReferenceType #define UA_NS0ID_HASNOTIFIER 48 // ReferenceType #define UA_NS0ID_HASORDEREDCOMPONENT 49 // ReferenceType #define UA_NS0ID_FROMSTATE 51 // ReferenceType #define UA_NS0ID_TOSTATE 52 // ReferenceType #define UA_NS0ID_HASCAUSE 53 // ReferenceType #define UA_NS0ID_HASEFFECT 54 // ReferenceType #define UA_NS0ID_HASHISTORICALCONFIGURATION 56 // ReferenceType #define UA_NS0ID_BASEOBJECTTYPE 58 // ObjectType #define UA_NS0ID_FOLDERTYPE 61 // ObjectType #define UA_NS0ID_BASEVARIABLETYPE 62 // VariableType #define UA_NS0ID_BASEDATAVARIABLETYPE 63 // VariableType #define UA_NS0ID_PROPERTYTYPE 68 // VariableType #define UA_NS0ID_DATATYPEDESCRIPTIONTYPE 69 // VariableType #define UA_NS0ID_DATATYPEDICTIONARYTYPE 72 // VariableType #define UA_NS0ID_DATATYPESYSTEMTYPE 75 // ObjectType #define UA_NS0ID_DATATYPEENCODINGTYPE 76 // ObjectType #define UA_NS0ID_MODELLINGRULETYPE 77 // ObjectType #define UA_NS0ID_MODELLINGRULE_MANDATORY 78 // Object #define UA_NS0ID_MODELLINGRULE_MANDATORYSHARED 79 // Object #define UA_NS0ID_MODELLINGRULE_OPTIONAL 80 // Object #define UA_NS0ID_MODELLINGRULE_EXPOSESITSARRAY 83 // Object #define UA_NS0ID_ROOTFOLDER 84 // Object #define UA_NS0ID_OBJECTSFOLDER 85 // Object #define UA_NS0ID_TYPESFOLDER 86 // Object #define UA_NS0ID_VIEWSFOLDER 87 // Object #define UA_NS0ID_OBJECTTYPESFOLDER 88 // Object #define UA_NS0ID_VARIABLETYPESFOLDER 89 // Object #define UA_NS0ID_DATATYPESFOLDER 90 // Object #define UA_NS0ID_REFERENCETYPESFOLDER 91 // Object #define UA_NS0ID_XMLSCHEMA_TYPESYSTEM 92 // Object #define UA_NS0ID_OPCBINARYSCHEMA_TYPESYSTEM 93 // Object #define UA_NS0ID_MODELLINGRULE_MANDATORY_NAMINGRULE 112 // Variable #define UA_NS0ID_MODELLINGRULE_OPTIONAL_NAMINGRULE 113 // Variable #define UA_NS0ID_MODELLINGRULE_EXPOSESITSARRAY_NAMINGRULE 114 // Variable #define UA_NS0ID_MODELLINGRULE_MANDATORYSHARED_NAMINGRULE 116 // Variable #define UA_NS0ID_HASSUBSTATEMACHINE 117 // ReferenceType #define UA_NS0ID_NAMINGRULETYPE 120 // DataType #define UA_NS0ID_IDTYPE 256 // DataType #define UA_NS0ID_NODECLASS 257 // DataType #define UA_NS0ID_NODE 258 // DataType #define UA_NS0ID_OBJECTNODE 261 // DataType #define UA_NS0ID_OBJECTTYPENODE 264 // DataType #define UA_NS0ID_VARIABLENODE 267 // DataType #define UA_NS0ID_VARIABLETYPENODE 270 // DataType #define UA_NS0ID_REFERENCETYPENODE 273 // DataType #define UA_NS0ID_METHODNODE 276 // DataType #define UA_NS0ID_VIEWNODE 279 // DataType #define UA_NS0ID_DATATYPENODE 282 // DataType #define UA_NS0ID_REFERENCENODE 285 // DataType #define UA_NS0ID_INTEGERID 288 // DataType #define UA_NS0ID_COUNTER 289 // DataType #define UA_NS0ID_DURATION 290 // DataType #define UA_NS0ID_NUMERICRANGE 291 // DataType #define UA_NS0ID_TIME 292 // DataType #define UA_NS0ID_DATE 293 // DataType #define UA_NS0ID_UTCTIME 294 // DataType #define UA_NS0ID_LOCALEID 295 // DataType #define UA_NS0ID_ARGUMENT 296 // DataType #define UA_NS0ID_STATUSRESULT 299 // DataType #define UA_NS0ID_MESSAGESECURITYMODE 302 // DataType #define UA_NS0ID_USERTOKENTYPE 303 // DataType #define UA_NS0ID_USERTOKENPOLICY 304 // DataType #define UA_NS0ID_APPLICATIONTYPE 307 // DataType #define UA_NS0ID_APPLICATIONDESCRIPTION 308 // DataType #define UA_NS0ID_APPLICATIONINSTANCECERTIFICATE 311 // DataType #define UA_NS0ID_ENDPOINTDESCRIPTION 312 // DataType #define UA_NS0ID_SECURITYTOKENREQUESTTYPE 315 // DataType #define UA_NS0ID_USERIDENTITYTOKEN 316 // DataType #define UA_NS0ID_ANONYMOUSIDENTITYTOKEN 319 // DataType #define UA_NS0ID_USERNAMEIDENTITYTOKEN 322 // DataType #define UA_NS0ID_X509IDENTITYTOKEN 325 // DataType #define UA_NS0ID_ENDPOINTCONFIGURATION 331 // DataType #define UA_NS0ID_COMPLIANCELEVEL 334 // DataType #define UA_NS0ID_SUPPORTEDPROFILE 335 // DataType #define UA_NS0ID_BUILDINFO 338 // DataType #define UA_NS0ID_SOFTWARECERTIFICATE 341 // DataType #define UA_NS0ID_SIGNEDSOFTWARECERTIFICATE 344 // DataType #define UA_NS0ID_ATTRIBUTEWRITEMASK 347 // DataType #define UA_NS0ID_NODEATTRIBUTESMASK 348 // DataType #define UA_NS0ID_NODEATTRIBUTES 349 // DataType #define UA_NS0ID_OBJECTATTRIBUTES 352 // DataType #define UA_NS0ID_VARIABLEATTRIBUTES 355 // DataType #define UA_NS0ID_METHODATTRIBUTES 358 // DataType #define UA_NS0ID_OBJECTTYPEATTRIBUTES 361 // DataType #define UA_NS0ID_VARIABLETYPEATTRIBUTES 364 // DataType #define UA_NS0ID_REFERENCETYPEATTRIBUTES 367 // DataType #define UA_NS0ID_DATATYPEATTRIBUTES 370 // DataType #define UA_NS0ID_VIEWATTRIBUTES 373 // DataType #define UA_NS0ID_ADDNODESITEM 376 // DataType #define UA_NS0ID_ADDREFERENCESITEM 379 // DataType #define UA_NS0ID_DELETENODESITEM 382 // DataType #define UA_NS0ID_DELETEREFERENCESITEM 385 // DataType #define UA_NS0ID_SESSIONAUTHENTICATIONTOKEN 388 // DataType #define UA_NS0ID_REQUESTHEADER 389 // DataType #define UA_NS0ID_RESPONSEHEADER 392 // DataType #define UA_NS0ID_SERVICEFAULT 395 // DataType #define UA_NS0ID_FINDSERVERSREQUEST 420 // DataType #define UA_NS0ID_FINDSERVERSRESPONSE 423 // DataType #define UA_NS0ID_GETENDPOINTSREQUEST 426 // DataType #define UA_NS0ID_GETENDPOINTSRESPONSE 429 // DataType #define UA_NS0ID_REGISTEREDSERVER 432 // DataType #define UA_NS0ID_REGISTERSERVERREQUEST 435 // DataType #define UA_NS0ID_REGISTERSERVERRESPONSE 438 // DataType #define UA_NS0ID_CHANNELSECURITYTOKEN 441 // DataType #define UA_NS0ID_OPENSECURECHANNELREQUEST 444 // DataType #define UA_NS0ID_OPENSECURECHANNELRESPONSE 447 // DataType #define UA_NS0ID_CLOSESECURECHANNELREQUEST 450 // DataType #define UA_NS0ID_CLOSESECURECHANNELRESPONSE 453 // DataType #define UA_NS0ID_SIGNATUREDATA 456 // DataType #define UA_NS0ID_CREATESESSIONREQUEST 459 // DataType #define UA_NS0ID_CREATESESSIONRESPONSE 462 // DataType #define UA_NS0ID_ACTIVATESESSIONREQUEST 465 // DataType #define UA_NS0ID_ACTIVATESESSIONRESPONSE 468 // DataType #define UA_NS0ID_CLOSESESSIONREQUEST 471 // DataType #define UA_NS0ID_CLOSESESSIONRESPONSE 474 // DataType #define UA_NS0ID_CANCELREQUEST 477 // DataType #define UA_NS0ID_CANCELRESPONSE 480 // DataType #define UA_NS0ID_ADDNODESRESULT 483 // DataType #define UA_NS0ID_ADDNODESREQUEST 486 // DataType #define UA_NS0ID_ADDNODESRESPONSE 489 // DataType #define UA_NS0ID_ADDREFERENCESREQUEST 492 // DataType #define UA_NS0ID_ADDREFERENCESRESPONSE 495 // DataType #define UA_NS0ID_DELETENODESREQUEST 498 // DataType #define UA_NS0ID_DELETENODESRESPONSE 501 // DataType #define UA_NS0ID_DELETEREFERENCESREQUEST 504 // DataType #define UA_NS0ID_DELETEREFERENCESRESPONSE 507 // DataType #define UA_NS0ID_BROWSEDIRECTION 510 // DataType #define UA_NS0ID_VIEWDESCRIPTION 511 // DataType #define UA_NS0ID_BROWSEDESCRIPTION 514 // DataType #define UA_NS0ID_BROWSERESULTMASK 517 // DataType #define UA_NS0ID_REFERENCEDESCRIPTION 518 // DataType #define UA_NS0ID_CONTINUATIONPOINT 521 // DataType #define UA_NS0ID_BROWSERESULT 522 // DataType #define UA_NS0ID_BROWSEREQUEST 525 // DataType #define UA_NS0ID_BROWSERESPONSE 528 // DataType #define UA_NS0ID_BROWSENEXTREQUEST 531 // DataType #define UA_NS0ID_BROWSENEXTRESPONSE 534 // DataType #define UA_NS0ID_RELATIVEPATHELEMENT 537 // DataType #define UA_NS0ID_RELATIVEPATH 540 // DataType #define UA_NS0ID_BROWSEPATH 543 // DataType #define UA_NS0ID_BROWSEPATHTARGET 546 // DataType #define UA_NS0ID_BROWSEPATHRESULT 549 // DataType #define UA_NS0ID_TRANSLATEBROWSEPATHSTONODEIDSREQUEST 552 // DataType #define UA_NS0ID_TRANSLATEBROWSEPATHSTONODEIDSRESPONSE 555 // DataType #define UA_NS0ID_REGISTERNODESREQUEST 558 // DataType #define UA_NS0ID_REGISTERNODESRESPONSE 561 // DataType #define UA_NS0ID_UNREGISTERNODESREQUEST 564 // DataType #define UA_NS0ID_UNREGISTERNODESRESPONSE 567 // DataType #define UA_NS0ID_QUERYDATADESCRIPTION 570 // DataType #define UA_NS0ID_NODETYPEDESCRIPTION 573 // DataType #define UA_NS0ID_FILTEROPERATOR 576 // DataType #define UA_NS0ID_QUERYDATASET 577 // DataType #define UA_NS0ID_NODEREFERENCE 580 // DataType #define UA_NS0ID_CONTENTFILTERELEMENT 583 // DataType #define UA_NS0ID_CONTENTFILTER 586 // DataType #define UA_NS0ID_FILTEROPERAND 589 // DataType #define UA_NS0ID_ELEMENTOPERAND 592 // DataType #define UA_NS0ID_LITERALOPERAND 595 // DataType #define UA_NS0ID_ATTRIBUTEOPERAND 598 // DataType #define UA_NS0ID_SIMPLEATTRIBUTEOPERAND 601 // DataType #define UA_NS0ID_CONTENTFILTERELEMENTRESULT 604 // DataType #define UA_NS0ID_CONTENTFILTERRESULT 607 // DataType #define UA_NS0ID_PARSINGRESULT 610 // DataType #define UA_NS0ID_QUERYFIRSTREQUEST 613 // DataType #define UA_NS0ID_QUERYFIRSTRESPONSE 616 // DataType #define UA_NS0ID_QUERYNEXTREQUEST 619 // DataType #define UA_NS0ID_QUERYNEXTRESPONSE 622 // DataType #define UA_NS0ID_TIMESTAMPSTORETURN 625 // DataType #define UA_NS0ID_READVALUEID 626 // DataType #define UA_NS0ID_READREQUEST 629 // DataType #define UA_NS0ID_READRESPONSE 632 // DataType #define UA_NS0ID_HISTORYREADVALUEID 635 // DataType #define UA_NS0ID_HISTORYREADRESULT 638 // DataType #define UA_NS0ID_HISTORYREADDETAILS 641 // DataType #define UA_NS0ID_READEVENTDETAILS 644 // DataType #define UA_NS0ID_READRAWMODIFIEDDETAILS 647 // DataType #define UA_NS0ID_READPROCESSEDDETAILS 650 // DataType #define UA_NS0ID_READATTIMEDETAILS 653 // DataType #define UA_NS0ID_HISTORYDATA 656 // DataType #define UA_NS0ID_HISTORYEVENT 659 // DataType #define UA_NS0ID_HISTORYREADREQUEST 662 // DataType #define UA_NS0ID_HISTORYREADRESPONSE 665 // DataType #define UA_NS0ID_WRITEVALUE 668 // DataType #define UA_NS0ID_WRITEREQUEST 671 // DataType #define UA_NS0ID_WRITERESPONSE 674 // DataType #define UA_NS0ID_HISTORYUPDATEDETAILS 677 // DataType #define UA_NS0ID_UPDATEDATADETAILS 680 // DataType #define UA_NS0ID_UPDATEEVENTDETAILS 683 // DataType #define UA_NS0ID_DELETERAWMODIFIEDDETAILS 686 // DataType #define UA_NS0ID_DELETEATTIMEDETAILS 689 // DataType #define UA_NS0ID_DELETEEVENTDETAILS 692 // DataType #define UA_NS0ID_HISTORYUPDATERESULT 695 // DataType #define UA_NS0ID_HISTORYUPDATEREQUEST 698 // DataType #define UA_NS0ID_HISTORYUPDATERESPONSE 701 // DataType #define UA_NS0ID_CALLMETHODREQUEST 704 // DataType #define UA_NS0ID_CALLMETHODRESULT 707 // DataType #define UA_NS0ID_CALLREQUEST 710 // DataType #define UA_NS0ID_CALLRESPONSE 713 // DataType #define UA_NS0ID_MONITORINGMODE 716 // DataType #define UA_NS0ID_DATACHANGETRIGGER 717 // DataType #define UA_NS0ID_DEADBANDTYPE 718 // DataType #define UA_NS0ID_MONITORINGFILTER 719 // DataType #define UA_NS0ID_DATACHANGEFILTER 722 // DataType #define UA_NS0ID_EVENTFILTER 725 // DataType #define UA_NS0ID_AGGREGATEFILTER 728 // DataType #define UA_NS0ID_MONITORINGFILTERRESULT 731 // DataType #define UA_NS0ID_EVENTFILTERRESULT 734 // DataType #define UA_NS0ID_AGGREGATEFILTERRESULT 737 // DataType #define UA_NS0ID_MONITORINGPARAMETERS 740 // DataType #define UA_NS0ID_MONITOREDITEMCREATEREQUEST 743 // DataType #define UA_NS0ID_MONITOREDITEMCREATERESULT 746 // DataType #define UA_NS0ID_CREATEMONITOREDITEMSREQUEST 749 // DataType #define UA_NS0ID_CREATEMONITOREDITEMSRESPONSE 752 // DataType #define UA_NS0ID_MONITOREDITEMMODIFYREQUEST 755 // DataType #define UA_NS0ID_MONITOREDITEMMODIFYRESULT 758 // DataType #define UA_NS0ID_MODIFYMONITOREDITEMSREQUEST 761 // DataType #define UA_NS0ID_MODIFYMONITOREDITEMSRESPONSE 764 // DataType #define UA_NS0ID_SETMONITORINGMODEREQUEST 767 // DataType #define UA_NS0ID_SETMONITORINGMODERESPONSE 770 // DataType #define UA_NS0ID_SETTRIGGERINGREQUEST 773 // DataType #define UA_NS0ID_SETTRIGGERINGRESPONSE 776 // DataType #define UA_NS0ID_DELETEMONITOREDITEMSREQUEST 779 // DataType #define UA_NS0ID_DELETEMONITOREDITEMSRESPONSE 782 // DataType #define UA_NS0ID_CREATESUBSCRIPTIONREQUEST 785 // DataType #define UA_NS0ID_CREATESUBSCRIPTIONRESPONSE 788 // DataType #define UA_NS0ID_MODIFYSUBSCRIPTIONREQUEST 791 // DataType #define UA_NS0ID_MODIFYSUBSCRIPTIONRESPONSE 794 // DataType #define UA_NS0ID_SETPUBLISHINGMODEREQUEST 797 // DataType #define UA_NS0ID_SETPUBLISHINGMODERESPONSE 800 // DataType #define UA_NS0ID_NOTIFICATIONMESSAGE 803 // DataType #define UA_NS0ID_MONITOREDITEMNOTIFICATION 806 // DataType #define UA_NS0ID_DATACHANGENOTIFICATION 809 // DataType #define UA_NS0ID_STATUSCHANGENOTIFICATION 818 // DataType #define UA_NS0ID_SUBSCRIPTIONACKNOWLEDGEMENT 821 // DataType #define UA_NS0ID_PUBLISHREQUEST 824 // DataType #define UA_NS0ID_PUBLISHRESPONSE 827 // DataType #define UA_NS0ID_REPUBLISHREQUEST 830 // DataType #define UA_NS0ID_REPUBLISHRESPONSE 833 // DataType #define UA_NS0ID_TRANSFERRESULT 836 // DataType #define UA_NS0ID_TRANSFERSUBSCRIPTIONSREQUEST 839 // DataType #define UA_NS0ID_TRANSFERSUBSCRIPTIONSRESPONSE 842 // DataType #define UA_NS0ID_DELETESUBSCRIPTIONSREQUEST 845 // DataType #define UA_NS0ID_DELETESUBSCRIPTIONSRESPONSE 848 // DataType #define UA_NS0ID_REDUNDANCYSUPPORT 851 // DataType #define UA_NS0ID_SERVERSTATE 852 // DataType #define UA_NS0ID_REDUNDANTSERVERDATATYPE 853 // DataType #define UA_NS0ID_SAMPLINGINTERVALDIAGNOSTICSDATATYPE 856 // DataType #define UA_NS0ID_SERVERDIAGNOSTICSSUMMARYDATATYPE 859 // DataType #define UA_NS0ID_SERVERSTATUSDATATYPE 862 // DataType #define UA_NS0ID_SESSIONDIAGNOSTICSDATATYPE 865 // DataType #define UA_NS0ID_SESSIONSECURITYDIAGNOSTICSDATATYPE 868 // DataType #define UA_NS0ID_SERVICECOUNTERDATATYPE 871 // DataType #define UA_NS0ID_SUBSCRIPTIONDIAGNOSTICSDATATYPE 874 // DataType #define UA_NS0ID_MODELCHANGESTRUCTUREDATATYPE 877 // DataType #define UA_NS0ID_RANGE 884 // DataType #define UA_NS0ID_EUINFORMATION 887 // DataType #define UA_NS0ID_EXCEPTIONDEVIATIONFORMAT 890 // DataType #define UA_NS0ID_ANNOTATION 891 // DataType #define UA_NS0ID_PROGRAMDIAGNOSTICDATATYPE 894 // DataType #define UA_NS0ID_SEMANTICCHANGESTRUCTUREDATATYPE 897 // DataType #define UA_NS0ID_EVENTNOTIFICATIONLIST 914 // DataType #define UA_NS0ID_EVENTFIELDLIST 917 // DataType #define UA_NS0ID_HISTORYEVENTFIELDLIST 920 // DataType #define UA_NS0ID_HISTORYUPDATEEVENTRESULT 929 // DataType #define UA_NS0ID_ISSUEDIDENTITYTOKEN 938 // DataType #define UA_NS0ID_NOTIFICATIONDATA 945 // DataType #define UA_NS0ID_AGGREGATECONFIGURATION 948 // DataType #define UA_NS0ID_IMAGEBMP 2000 // DataType #define UA_NS0ID_IMAGEGIF 2001 // DataType #define UA_NS0ID_IMAGEJPG 2002 // DataType #define UA_NS0ID_IMAGEPNG 2003 // DataType #define UA_NS0ID_SERVERTYPE 2004 // ObjectType #define UA_NS0ID_SERVERCAPABILITIESTYPE 2013 // ObjectType #define UA_NS0ID_SERVERDIAGNOSTICSTYPE 2020 // ObjectType #define UA_NS0ID_SESSIONSDIAGNOSTICSSUMMARYTYPE 2026 // ObjectType #define UA_NS0ID_SESSIONDIAGNOSTICSOBJECTTYPE 2029 // ObjectType #define UA_NS0ID_VENDORSERVERINFOTYPE 2033 // ObjectType #define UA_NS0ID_SERVERREDUNDANCYTYPE 2034 // ObjectType #define UA_NS0ID_TRANSPARENTREDUNDANCYTYPE 2036 // ObjectType #define UA_NS0ID_NONTRANSPARENTREDUNDANCYTYPE 2039 // ObjectType #define UA_NS0ID_BASEEVENTTYPE 2041 // ObjectType #define UA_NS0ID_AUDITEVENTTYPE 2052 // ObjectType #define UA_NS0ID_AUDITSECURITYEVENTTYPE 2058 // ObjectType #define UA_NS0ID_AUDITCHANNELEVENTTYPE 2059 // ObjectType #define UA_NS0ID_AUDITOPENSECURECHANNELEVENTTYPE 2060 // ObjectType #define UA_NS0ID_AUDITSESSIONEVENTTYPE 2069 // ObjectType #define UA_NS0ID_AUDITCREATESESSIONEVENTTYPE 2071 // ObjectType #define UA_NS0ID_AUDITACTIVATESESSIONEVENTTYPE 2075 // ObjectType #define UA_NS0ID_AUDITCANCELEVENTTYPE 2078 // ObjectType #define UA_NS0ID_AUDITCERTIFICATEEVENTTYPE 2080 // ObjectType #define UA_NS0ID_AUDITCERTIFICATEDATAMISMATCHEVENTTYPE 2082 // ObjectType #define UA_NS0ID_AUDITCERTIFICATEEXPIREDEVENTTYPE 2085 // ObjectType #define UA_NS0ID_AUDITCERTIFICATEINVALIDEVENTTYPE 2086 // ObjectType #define UA_NS0ID_AUDITCERTIFICATEUNTRUSTEDEVENTTYPE 2087 // ObjectType #define UA_NS0ID_AUDITCERTIFICATEREVOKEDEVENTTYPE 2088 // ObjectType #define UA_NS0ID_AUDITCERTIFICATEMISMATCHEVENTTYPE 2089 // ObjectType #define UA_NS0ID_AUDITNODEMANAGEMENTEVENTTYPE 2090 // ObjectType #define UA_NS0ID_AUDITADDNODESEVENTTYPE 2091 // ObjectType #define UA_NS0ID_AUDITDELETENODESEVENTTYPE 2093 // ObjectType #define UA_NS0ID_AUDITADDREFERENCESEVENTTYPE 2095 // ObjectType #define UA_NS0ID_AUDITDELETEREFERENCESEVENTTYPE 2097 // ObjectType #define UA_NS0ID_AUDITUPDATEEVENTTYPE 2099 // ObjectType #define UA_NS0ID_AUDITWRITEUPDATEEVENTTYPE 2100 // ObjectType #define UA_NS0ID_AUDITHISTORYUPDATEEVENTTYPE 2104 // ObjectType #define UA_NS0ID_AUDITUPDATEMETHODEVENTTYPE 2127 // ObjectType #define UA_NS0ID_SYSTEMEVENTTYPE 2130 // ObjectType #define UA_NS0ID_DEVICEFAILUREEVENTTYPE 2131 // ObjectType #define UA_NS0ID_BASEMODELCHANGEEVENTTYPE 2132 // ObjectType #define UA_NS0ID_GENERALMODELCHANGEEVENTTYPE 2133 // ObjectType #define UA_NS0ID_SERVERVENDORCAPABILITYTYPE 2137 // VariableType #define UA_NS0ID_SERVERSTATUSTYPE 2138 // VariableType #define UA_NS0ID_SERVERDIAGNOSTICSSUMMARYTYPE 2150 // VariableType #define UA_NS0ID_SAMPLINGINTERVALDIAGNOSTICSARRAYTYPE 2164 // VariableType #define UA_NS0ID_SAMPLINGINTERVALDIAGNOSTICSTYPE 2165 // VariableType #define UA_NS0ID_SUBSCRIPTIONDIAGNOSTICSARRAYTYPE 2171 // VariableType #define UA_NS0ID_SUBSCRIPTIONDIAGNOSTICSTYPE 2172 // VariableType #define UA_NS0ID_SESSIONDIAGNOSTICSARRAYTYPE 2196 // VariableType #define UA_NS0ID_SESSIONDIAGNOSTICSVARIABLETYPE 2197 // VariableType #define UA_NS0ID_SESSIONSECURITYDIAGNOSTICSARRAYTYPE 2243 // VariableType #define UA_NS0ID_SESSIONSECURITYDIAGNOSTICSTYPE 2244 // VariableType #define UA_NS0ID_SERVER 2253 // Object #define UA_NS0ID_SERVER_SERVERARRAY 2254 // Variable #define UA_NS0ID_SERVER_NAMESPACEARRAY 2255 // Variable #define UA_NS0ID_SERVER_SERVERSTATUS 2256 // Variable #define UA_NS0ID_SERVER_SERVERSTATUS_STARTTIME 2257 // Variable #define UA_NS0ID_SERVER_SERVERSTATUS_CURRENTTIME 2258 // Variable #define UA_NS0ID_SERVER_SERVERSTATUS_STATE 2259 // Variable #define UA_NS0ID_SERVER_SERVERSTATUS_BUILDINFO 2260 // Variable #define UA_NS0ID_SERVER_SERVERSTATUS_BUILDINFO_PRODUCTNAME 2261 // Variable #define UA_NS0ID_SERVER_SERVERSTATUS_BUILDINFO_PRODUCTURI 2262 // Variable #define UA_NS0ID_SERVER_SERVERSTATUS_BUILDINFO_MANUFACTURERNAME 2263 // Variable #define UA_NS0ID_SERVER_SERVERSTATUS_BUILDINFO_SOFTWAREVERSION 2264 // Variable #define UA_NS0ID_SERVER_SERVERSTATUS_BUILDINFO_BUILDNUMBER 2265 // Variable #define UA_NS0ID_SERVER_SERVERSTATUS_BUILDINFO_BUILDDATE 2266 // Variable #define UA_NS0ID_SERVER_SERVICELEVEL 2267 // Variable #define UA_NS0ID_SERVER_SERVERCAPABILITIES 2268 // Object #define UA_NS0ID_SERVER_SERVERCAPABILITIES_SERVERPROFILEARRAY 2269 // Variable #define UA_NS0ID_SERVER_SERVERCAPABILITIES_LOCALEIDARRAY 2271 // Variable #define UA_NS0ID_SERVER_SERVERCAPABILITIES_MINSUPPORTEDSAMPLERATE 2272 // Variable #define UA_NS0ID_SERVER_SERVERDIAGNOSTICS 2274 // Object #define UA_NS0ID_SERVER_SERVERDIAGNOSTICS_SERVERDIAGNOSTICSSUMMARY 2275 // Variable #define UA_NS0ID_SERVER_SERVERDIAGNOSTICS_SERVERDIAGNOSTICSSUMMARY_SERVERVIEWCOUNT 2276 // Variable #define UA_NS0ID_SERVER_SERVERDIAGNOSTICS_SERVERDIAGNOSTICSSUMMARY_CURRENTSESSIONCOUNT 2277 // Variable #define UA_NS0ID_SERVER_SERVERDIAGNOSTICS_SERVERDIAGNOSTICSSUMMARY_CUMULATEDSESSIONCOUNT 2278 // Variable #define UA_NS0ID_SERVER_SERVERDIAGNOSTICS_SERVERDIAGNOSTICSSUMMARY_SECURITYREJECTEDSESSIONCOUNT 2279 // Variable #define UA_NS0ID_SERVER_SERVERDIAGNOSTICS_SERVERDIAGNOSTICSSUMMARY_SESSIONTIMEOUTCOUNT 2281 // Variable #define UA_NS0ID_SERVER_SERVERDIAGNOSTICS_SERVERDIAGNOSTICSSUMMARY_SESSIONABORTCOUNT 2282 // Variable #define UA_NS0ID_SERVER_SERVERDIAGNOSTICS_SERVERDIAGNOSTICSSUMMARY_PUBLISHINGINTERVALCOUNT 2284 // Variable #define UA_NS0ID_SERVER_SERVERDIAGNOSTICS_SERVERDIAGNOSTICSSUMMARY_CURRENTSUBSCRIPTIONCOUNT 2285 // Variable #define UA_NS0ID_SERVER_SERVERDIAGNOSTICS_SERVERDIAGNOSTICSSUMMARY_CUMULATEDSUBSCRIPTIONCOUNT 2286 // Variable #define UA_NS0ID_SERVER_SERVERDIAGNOSTICS_SERVERDIAGNOSTICSSUMMARY_SECURITYREJECTEDREQUESTSCOUNT 2287 // Variable #define UA_NS0ID_SERVER_SERVERDIAGNOSTICS_SERVERDIAGNOSTICSSUMMARY_REJECTEDREQUESTSCOUNT 2288 // Variable #define UA_NS0ID_SERVER_SERVERDIAGNOSTICS_SAMPLINGINTERVALDIAGNOSTICSARRAY 2289 // Variable #define UA_NS0ID_SERVER_SERVERDIAGNOSTICS_SUBSCRIPTIONDIAGNOSTICSARRAY 2290 // Variable #define UA_NS0ID_SERVER_SERVERDIAGNOSTICS_ENABLEDFLAG 2294 // Variable #define UA_NS0ID_SERVER_VENDORSERVERINFO 2295 // Object #define UA_NS0ID_SERVER_SERVERREDUNDANCY 2296 // Object #define UA_NS0ID_STATEMACHINETYPE 2299 // ObjectType #define UA_NS0ID_STATETYPE 2307 // ObjectType #define UA_NS0ID_INITIALSTATETYPE 2309 // ObjectType #define UA_NS0ID_TRANSITIONTYPE 2310 // ObjectType #define UA_NS0ID_TRANSITIONEVENTTYPE 2311 // ObjectType #define UA_NS0ID_AUDITUPDATESTATEEVENTTYPE 2315 // ObjectType #define UA_NS0ID_HISTORICALDATACONFIGURATIONTYPE 2318 // ObjectType #define UA_NS0ID_HISTORYSERVERCAPABILITIESTYPE 2330 // ObjectType #define UA_NS0ID_AGGREGATEFUNCTIONTYPE 2340 // ObjectType #define UA_NS0ID_AGGREGATEFUNCTION_INTERPOLATIVE 2341 // Object #define UA_NS0ID_AGGREGATEFUNCTION_AVERAGE 2342 // Object #define UA_NS0ID_AGGREGATEFUNCTION_TIMEAVERAGE 2343 // Object #define UA_NS0ID_AGGREGATEFUNCTION_TOTAL 2344 // Object #define UA_NS0ID_AGGREGATEFUNCTION_MINIMUM 2346 // Object #define UA_NS0ID_AGGREGATEFUNCTION_MAXIMUM 2347 // Object #define UA_NS0ID_AGGREGATEFUNCTION_MINIMUMACTUALTIME 2348 // Object #define UA_NS0ID_AGGREGATEFUNCTION_MAXIMUMACTUALTIME 2349 // Object #define UA_NS0ID_AGGREGATEFUNCTION_RANGE 2350 // Object #define UA_NS0ID_AGGREGATEFUNCTION_ANNOTATIONCOUNT 2351 // Object #define UA_NS0ID_AGGREGATEFUNCTION_COUNT 2352 // Object #define UA_NS0ID_AGGREGATEFUNCTION_NUMBEROFTRANSITIONS 2355 // Object #define UA_NS0ID_AGGREGATEFUNCTION_START 2357 // Object #define UA_NS0ID_AGGREGATEFUNCTION_END 2358 // Object #define UA_NS0ID_AGGREGATEFUNCTION_DELTA 2359 // Object #define UA_NS0ID_AGGREGATEFUNCTION_DURATIONGOOD 2360 // Object #define UA_NS0ID_AGGREGATEFUNCTION_DURATIONBAD 2361 // Object #define UA_NS0ID_AGGREGATEFUNCTION_PERCENTGOOD 2362 // Object #define UA_NS0ID_AGGREGATEFUNCTION_PERCENTBAD 2363 // Object #define UA_NS0ID_AGGREGATEFUNCTION_WORSTQUALITY 2364 // Object #define UA_NS0ID_DATAITEMTYPE 2365 // VariableType #define UA_NS0ID_ANALOGITEMTYPE 2368 // VariableType #define UA_NS0ID_DISCRETEITEMTYPE 2372 // VariableType #define UA_NS0ID_TWOSTATEDISCRETETYPE 2373 // VariableType #define UA_NS0ID_MULTISTATEDISCRETETYPE 2376 // VariableType #define UA_NS0ID_PROGRAMTRANSITIONEVENTTYPE 2378 // ObjectType #define UA_NS0ID_PROGRAMDIAGNOSTICTYPE 2380 // VariableType #define UA_NS0ID_PROGRAMSTATEMACHINETYPE 2391 // ObjectType #define UA_NS0ID_SERVER_SERVERCAPABILITIES_MAXBROWSECONTINUATIONPOINTS 2735 // Variable #define UA_NS0ID_SERVER_SERVERCAPABILITIES_MAXQUERYCONTINUATIONPOINTS 2736 // Variable #define UA_NS0ID_SERVER_SERVERCAPABILITIES_MAXHISTORYCONTINUATIONPOINTS 2737 // Variable #define UA_NS0ID_SEMANTICCHANGEEVENTTYPE 2738 // ObjectType #define UA_NS0ID_AUDITURLMISMATCHEVENTTYPE 2748 // ObjectType #define UA_NS0ID_STATEVARIABLETYPE 2755 // VariableType #define UA_NS0ID_FINITESTATEVARIABLETYPE 2760 // VariableType #define UA_NS0ID_TRANSITIONVARIABLETYPE 2762 // VariableType #define UA_NS0ID_FINITETRANSITIONVARIABLETYPE 2767 // VariableType #define UA_NS0ID_FINITESTATEMACHINETYPE 2771 // ObjectType #define UA_NS0ID_CONDITIONTYPE 2782 // ObjectType #define UA_NS0ID_REFRESHSTARTEVENTTYPE 2787 // ObjectType #define UA_NS0ID_REFRESHENDEVENTTYPE 2788 // ObjectType #define UA_NS0ID_REFRESHREQUIREDEVENTTYPE 2789 // ObjectType #define UA_NS0ID_AUDITCONDITIONEVENTTYPE 2790 // ObjectType #define UA_NS0ID_AUDITCONDITIONENABLEEVENTTYPE 2803 // ObjectType #define UA_NS0ID_AUDITCONDITIONCOMMENTEVENTTYPE 2829 // ObjectType #define UA_NS0ID_DIALOGCONDITIONTYPE 2830 // ObjectType #define UA_NS0ID_ACKNOWLEDGEABLECONDITIONTYPE 2881 // ObjectType #define UA_NS0ID_ALARMCONDITIONTYPE 2915 // ObjectType #define UA_NS0ID_SHELVEDSTATEMACHINETYPE 2929 // ObjectType #define UA_NS0ID_LIMITALARMTYPE 2955 // ObjectType #define UA_NS0ID_SERVER_SERVERSTATUS_SECONDSTILLSHUTDOWN 2992 // Variable #define UA_NS0ID_SERVER_SERVERSTATUS_SHUTDOWNREASON 2993 // Variable #define UA_NS0ID_SERVER_AUDITING 2994 // Variable #define UA_NS0ID_SERVER_SERVERCAPABILITIES_MODELLINGRULES 2996 // Object #define UA_NS0ID_SERVER_SERVERCAPABILITIES_AGGREGATEFUNCTIONS 2997 // Object #define UA_NS0ID_AUDITHISTORYEVENTUPDATEEVENTTYPE 2999 // ObjectType #define UA_NS0ID_AUDITHISTORYVALUEUPDATEEVENTTYPE 3006 // ObjectType #define UA_NS0ID_AUDITHISTORYDELETEEVENTTYPE 3012 // ObjectType #define UA_NS0ID_AUDITHISTORYRAWMODIFYDELETEEVENTTYPE 3014 // ObjectType #define UA_NS0ID_AUDITHISTORYATTIMEDELETEEVENTTYPE 3019 // ObjectType #define UA_NS0ID_AUDITHISTORYEVENTDELETEEVENTTYPE 3022 // ObjectType #define UA_NS0ID_EVENTQUEUEOVERFLOWEVENTTYPE 3035 // ObjectType #define UA_NS0ID_EVENTTYPESFOLDER 3048 // Object #define UA_NS0ID_BUILDINFOTYPE 3051 // VariableType #define UA_NS0ID_DEFAULTBINARY 3062 // Object #define UA_NS0ID_DEFAULTXML 3063 // Object #define UA_NS0ID_ALWAYSGENERATESEVENT 3065 // ReferenceType #define UA_NS0ID_ICON 3067 // Variable #define UA_NS0ID_NODEVERSION 3068 // Variable #define UA_NS0ID_LOCALTIME 3069 // Variable #define UA_NS0ID_ALLOWNULLS 3070 // Variable #define UA_NS0ID_ENUMVALUES 3071 // Variable #define UA_NS0ID_INPUTARGUMENTS 3072 // Variable #define UA_NS0ID_OUTPUTARGUMENTS 3073 // Variable #define UA_NS0ID_SERVER_SERVERCAPABILITIES_SOFTWARECERTIFICATES 3704 // Variable #define UA_NS0ID_SERVER_SERVERDIAGNOSTICS_SERVERDIAGNOSTICSSUMMARY_REJECTEDSESSIONCOUNT 3705 // Variable #define UA_NS0ID_SERVER_SERVERDIAGNOSTICS_SESSIONSDIAGNOSTICSSUMMARY 3706 // Object #define UA_NS0ID_SERVER_SERVERDIAGNOSTICS_SESSIONSDIAGNOSTICSSUMMARY_SESSIONDIAGNOSTICSARRAY 3707 // Variable #define UA_NS0ID_SERVER_SERVERDIAGNOSTICS_SESSIONSDIAGNOSTICSSUMMARY_SESSIONSECURITYDIAGNOSTICSARRAY 3708 // Variable #define UA_NS0ID_SERVER_SERVERREDUNDANCY_REDUNDANCYSUPPORT 3709 // Variable #define UA_NS0ID_PROGRAMTRANSITIONAUDITEVENTTYPE 3806 // ObjectType #define UA_NS0ID_ADDCOMMENTMETHODTYPE 3863 // Method #define UA_NS0ID_TIMEDSHELVEMETHODTYPE 6102 // Method #define UA_NS0ID_ENUMVALUETYPE 7594 // DataType #define UA_NS0ID_MESSAGESECURITYMODE_ENUMSTRINGS 7595 // Variable #define UA_NS0ID_COMPLIANCELEVEL_ENUMSTRINGS 7599 // Variable #define UA_NS0ID_BROWSEDIRECTION_ENUMSTRINGS 7603 // Variable #define UA_NS0ID_FILTEROPERATOR_ENUMSTRINGS 7605 // Variable #define UA_NS0ID_TIMESTAMPSTORETURN_ENUMSTRINGS 7606 // Variable #define UA_NS0ID_MONITORINGMODE_ENUMSTRINGS 7608 // Variable #define UA_NS0ID_DATACHANGETRIGGER_ENUMSTRINGS 7609 // Variable #define UA_NS0ID_REDUNDANCYSUPPORT_ENUMSTRINGS 7611 // Variable #define UA_NS0ID_SERVERSTATE_ENUMSTRINGS 7612 // Variable #define UA_NS0ID_EXCEPTIONDEVIATIONFORMAT_ENUMSTRINGS 7614 // Variable #define UA_NS0ID_TIMEZONEDATATYPE 8912 // DataType #define UA_NS0ID_LOCKTYPE 8921 // ObjectType #define UA_NS0ID_SERVERLOCK 8924 // Object #define UA_NS0ID_SERVERLOCK_LOCK 8925 // Method #define UA_NS0ID_SERVERLOCK_UNLOCK 8926 // Method #define UA_NS0ID_AUDITCONDITIONRESPONDEVENTTYPE 8927 // ObjectType #define UA_NS0ID_AUDITCONDITIONACKNOWLEDGEEVENTTYPE 8944 // ObjectType #define UA_NS0ID_AUDITCONDITIONCONFIRMEVENTTYPE 8961 // ObjectType #define UA_NS0ID_TWOSTATEVARIABLETYPE 8995 // VariableType #define UA_NS0ID_CONDITIONVARIABLETYPE 9002 // VariableType #define UA_NS0ID_HASTRUESUBSTATE 9004 // ReferenceType #define UA_NS0ID_HASFALSESUBSTATE 9005 // ReferenceType #define UA_NS0ID_HASCONDITION 9006 // ReferenceType #define UA_NS0ID_CONDITIONREFRESHMETHODTYPE 9007 // Method #define UA_NS0ID_DIALOGRESPONSEMETHODTYPE 9031 // Method #define UA_NS0ID_EXCLUSIVELIMITSTATEMACHINETYPE 9318 // ObjectType #define UA_NS0ID_EXCLUSIVELIMITALARMTYPE 9341 // ObjectType #define UA_NS0ID_EXCLUSIVELEVELALARMTYPE 9482 // ObjectType #define UA_NS0ID_EXCLUSIVERATEOFCHANGEALARMTYPE 9623 // ObjectType #define UA_NS0ID_EXCLUSIVEDEVIATIONALARMTYPE 9764 // ObjectType #define UA_NS0ID_NONEXCLUSIVELIMITALARMTYPE 9906 // ObjectType #define UA_NS0ID_NONEXCLUSIVELEVELALARMTYPE 10060 // ObjectType #define UA_NS0ID_NONEXCLUSIVERATEOFCHANGEALARMTYPE 10214 // ObjectType #define UA_NS0ID_NONEXCLUSIVEDEVIATIONALARMTYPE 10368 // ObjectType #define UA_NS0ID_DISCRETEALARMTYPE 10523 // ObjectType #define UA_NS0ID_OFFNORMALALARMTYPE 10637 // ObjectType #define UA_NS0ID_TRIPALARMTYPE 10751 // ObjectType #define UA_NS0ID_AUDITCONDITIONSHELVINGEVENTTYPE 11093 // ObjectType #define UA_NS0ID_BASECONDITIONCLASSTYPE 11163 // ObjectType #define UA_NS0ID_PROCESSCONDITIONCLASSTYPE 11164 // ObjectType #define UA_NS0ID_MAINTENANCECONDITIONCLASSTYPE 11165 // ObjectType #define UA_NS0ID_SYSTEMCONDITIONCLASSTYPE 11166 // ObjectType #define UA_NS0ID_AGGREGATECONFIGURATIONTYPE 11187 // ObjectType #define UA_NS0ID_HISTORYSERVERCAPABILITIES 11192 // Object #define UA_NS0ID_HISTORYSERVERCAPABILITIES_ACCESSHISTORYDATACAPABILITY 11193 // Variable #define UA_NS0ID_HISTORYSERVERCAPABILITIES_INSERTDATACAPABILITY 11196 // Variable #define UA_NS0ID_HISTORYSERVERCAPABILITIES_REPLACEDATACAPABILITY 11197 // Variable #define UA_NS0ID_HISTORYSERVERCAPABILITIES_UPDATEDATACAPABILITY 11198 // Variable #define UA_NS0ID_HISTORYSERVERCAPABILITIES_DELETERAWCAPABILITY 11199 // Variable #define UA_NS0ID_HISTORYSERVERCAPABILITIES_DELETEATTIMECAPABILITY 11200 // Variable #define UA_NS0ID_HISTORYSERVERCAPABILITIES_AGGREGATEFUNCTIONS 11201 // Object #define UA_NS0ID_HACONFIGURATION 11202 // Object #define UA_NS0ID_HACONFIGURATION_AGGREGATECONFIGURATION 11203 // Object #define UA_NS0ID_HACONFIGURATION_AGGREGATECONFIGURATION_TREATUNCERTAINASBAD 11204 // Variable #define UA_NS0ID_HACONFIGURATION_AGGREGATECONFIGURATION_PERCENTDATABAD 11205 // Variable #define UA_NS0ID_HACONFIGURATION_AGGREGATECONFIGURATION_PERCENTDATAGOOD 11206 // Variable #define UA_NS0ID_HACONFIGURATION_AGGREGATECONFIGURATION_USESLOPEDEXTRAPOLATION 11207 // Variable #define UA_NS0ID_HACONFIGURATION_STEPPED 11208 // Variable #define UA_NS0ID_HACONFIGURATION_DEFINITION 11209 // Variable #define UA_NS0ID_HACONFIGURATION_MAXTIMEINTERVAL 11210 // Variable #define UA_NS0ID_HACONFIGURATION_MINTIMEINTERVAL 11211 // Variable #define UA_NS0ID_HACONFIGURATION_EXCEPTIONDEVIATION 11212 // Variable #define UA_NS0ID_HACONFIGURATION_EXCEPTIONDEVIATIONFORMAT 11213 // Variable #define UA_NS0ID_ANNOTATIONS 11214 // Variable #define UA_NS0ID_HISTORICALEVENTFILTER 11215 // Variable #define UA_NS0ID_MODIFICATIONINFO 11216 // DataType #define UA_NS0ID_HISTORYMODIFIEDDATA 11217 // DataType #define UA_NS0ID_HISTORYUPDATETYPE 11234 // DataType #define UA_NS0ID_MULTISTATEVALUEDISCRETETYPE 11238 // VariableType #define UA_NS0ID_HISTORYSERVERCAPABILITIES_ACCESSHISTORYEVENTSCAPABILITY 11242 // Variable #define UA_NS0ID_HISTORYSERVERCAPABILITIES_MAXRETURNDATAVALUES 11273 // Variable #define UA_NS0ID_HISTORYSERVERCAPABILITIES_MAXRETURNEVENTVALUES 11274 // Variable #define UA_NS0ID_HISTORYSERVERCAPABILITIES_INSERTANNOTATIONCAPABILITY 11275 // Variable #define UA_NS0ID_HISTORYSERVERCAPABILITIES_INSERTEVENTCAPABILITY 11281 // Variable #define UA_NS0ID_HISTORYSERVERCAPABILITIES_REPLACEEVENTCAPABILITY 11282 // Variable #define UA_NS0ID_HISTORYSERVERCAPABILITIES_UPDATEEVENTCAPABILITY 11283 // Variable #define UA_NS0ID_AGGREGATEFUNCTION_TIMEAVERAGE2 11285 // Object #define UA_NS0ID_AGGREGATEFUNCTION_MINIMUM2 11286 // Object #define UA_NS0ID_AGGREGATEFUNCTION_MAXIMUM2 11287 // Object #define UA_NS0ID_AGGREGATEFUNCTION_RANGE2 11288 // Object #define UA_NS0ID_AGGREGATEFUNCTION_WORSTQUALITY2 11292 // Object #define UA_NS0ID_PERFORMUPDATETYPE 11293 // DataType #define UA_NS0ID_UPDATESTRUCTUREDATADETAILS 11295 // DataType #define UA_NS0ID_AGGREGATEFUNCTION_TOTAL2 11304 // Object #define UA_NS0ID_AGGREGATEFUNCTION_MINIMUMACTUALTIME2 11305 // Object #define UA_NS0ID_AGGREGATEFUNCTION_MAXIMUMACTUALTIME2 11306 // Object #define UA_NS0ID_AGGREGATEFUNCTION_DURATIONINSTATEZERO 11307 // Object #define UA_NS0ID_AGGREGATEFUNCTION_DURATIONINSTATENONZERO 11308 // Object #define UA_NS0ID_SERVER_SERVERREDUNDANCY_CURRENTSERVERID 11312 // Variable #define UA_NS0ID_SERVER_SERVERREDUNDANCY_REDUNDANTSERVERARRAY 11313 // Variable #define UA_NS0ID_SERVER_SERVERREDUNDANCY_SERVERURIARRAY 11314 // Variable #define UA_NS0ID_AGGREGATEFUNCTION_STANDARDDEVIATIONSAMPLE 11426 // Object #define UA_NS0ID_AGGREGATEFUNCTION_STANDARDDEVIATIONPOPULATION 11427 // Object #define UA_NS0ID_AGGREGATEFUNCTION_VARIANCESAMPLE 11428 // Object #define UA_NS0ID_AGGREGATEFUNCTION_VARIANCEPOPULATION 11429 // Object #define UA_NS0ID_ENUMSTRINGS 11432 // Variable #define UA_NS0ID_VALUEASTEXT 11433 // Variable #define UA_NS0ID_PROGRESSEVENTTYPE 11436 // ObjectType #define UA_NS0ID_SYSTEMSTATUSCHANGEEVENTTYPE 11446 // ObjectType #define UA_NS0ID_OPTIONSETTYPE 11487 // VariableType #define UA_NS0ID_SERVER_GETMONITOREDITEMS 11492 // Method #define UA_NS0ID_SERVER_GETMONITOREDITEMS_INPUTARGUMENTS 11493 // Variable #define UA_NS0ID_SERVER_GETMONITOREDITEMS_OUTPUTARGUMENTS 11494 // Variable #define UA_NS0ID_GETMONITOREDITEMSMETHODTYPE 11495 // Method #define UA_NS0ID_MAXSTRINGLENGTH 11498 // Variable #define UA_NS0ID_HISTORYSERVERCAPABILITIES_DELETEEVENTCAPABILITY 11502 // Variable #define UA_NS0ID_HACONFIGURATION_STARTOFARCHIVE 11503 // Variable #define UA_NS0ID_HACONFIGURATION_STARTOFONLINEARCHIVE 11504 // Variable #define UA_NS0ID_AGGREGATEFUNCTION_STARTBOUND 11505 // Object #define UA_NS0ID_AGGREGATEFUNCTION_ENDBOUND 11506 // Object #define UA_NS0ID_AGGREGATEFUNCTION_DELTABOUNDS 11507 // Object #define UA_NS0ID_MODELLINGRULE_OPTIONALPLACEHOLDER 11508 // Object #define UA_NS0ID_MODELLINGRULE_OPTIONALPLACEHOLDER_NAMINGRULE 11509 // Variable #define UA_NS0ID_MODELLINGRULE_MANDATORYPLACEHOLDER 11510 // Object #define UA_NS0ID_MODELLINGRULE_MANDATORYPLACEHOLDER_NAMINGRULE 11511 // Variable #define UA_NS0ID_MAXARRAYLENGTH 11512 // Variable #define UA_NS0ID_ENGINEERINGUNITS 11513 // Variable #define UA_NS0ID_OPERATIONLIMITSTYPE 11564 // ObjectType #define UA_NS0ID_FILETYPE 11575 // ObjectType #define UA_NS0ID_ADDRESSSPACEFILETYPE 11595 // ObjectType #define UA_NS0ID_NAMESPACEMETADATATYPE 11616 // ObjectType #define UA_NS0ID_NAMESPACESTYPE 11645 // ObjectType #define UA_NS0ID_SERVER_SERVERCAPABILITIES_MAXARRAYLENGTH 11702 // Variable #define UA_NS0ID_SERVER_SERVERCAPABILITIES_MAXSTRINGLENGTH 11703 // Variable #define UA_NS0ID_SERVER_SERVERCAPABILITIES_OPERATIONLIMITS 11704 // Object #define UA_NS0ID_SERVER_SERVERCAPABILITIES_OPERATIONLIMITS_MAXNODESPERREAD 11705 // Variable #define UA_NS0ID_SERVER_SERVERCAPABILITIES_OPERATIONLIMITS_MAXNODESPERWRITE 11707 // Variable #define UA_NS0ID_SERVER_SERVERCAPABILITIES_OPERATIONLIMITS_MAXNODESPERMETHODCALL 11709 // Variable #define UA_NS0ID_SERVER_SERVERCAPABILITIES_OPERATIONLIMITS_MAXNODESPERBROWSE 11710 // Variable #define UA_NS0ID_SERVER_SERVERCAPABILITIES_OPERATIONLIMITS_MAXNODESPERREGISTERNODES 11711 // Variable #define UA_NS0ID_SERVER_SERVERCAPABILITIES_OPERATIONLIMITS_MAXNODESPERTRANSLATEBROWSEPATHSTONODEIDS 11712 // Variable #define UA_NS0ID_SERVER_SERVERCAPABILITIES_OPERATIONLIMITS_MAXNODESPERNODEMANAGEMENT 11713 // Variable #define UA_NS0ID_SERVER_SERVERCAPABILITIES_OPERATIONLIMITS_MAXMONITOREDITEMSPERCALL 11714 // Variable #define UA_NS0ID_SERVER_NAMESPACES 11715 // Object #define UA_NS0ID_SERVER_NAMESPACES_ADDRESSSPACEFILE 11716 // Object #define UA_NS0ID_SERVER_NAMESPACES_ADDRESSSPACEFILE_SIZE 11717 // Variable #define UA_NS0ID_SERVER_NAMESPACES_ADDRESSSPACEFILE_WRITEABLE 11718 // Variable #define UA_NS0ID_SERVER_NAMESPACES_ADDRESSSPACEFILE_USERWRITEABLE 11719 // Variable #define UA_NS0ID_SERVER_NAMESPACES_ADDRESSSPACEFILE_OPENCOUNT 11720 // Variable #define UA_NS0ID_SERVER_NAMESPACES_ADDRESSSPACEFILE_OPEN 11721 // Method #define UA_NS0ID_SERVER_NAMESPACES_ADDRESSSPACEFILE_OPEN_INPUTARGUMENTS 11722 // Variable #define UA_NS0ID_SERVER_NAMESPACES_ADDRESSSPACEFILE_OPEN_OUTPUTARGUMENTS 11723 // Variable #define UA_NS0ID_SERVER_NAMESPACES_ADDRESSSPACEFILE_CLOSE 11724 // Method #define UA_NS0ID_SERVER_NAMESPACES_ADDRESSSPACEFILE_CLOSE_INPUTARGUMENTS 11725 // Variable #define UA_NS0ID_SERVER_NAMESPACES_ADDRESSSPACEFILE_READ 11726 // Method #define UA_NS0ID_SERVER_NAMESPACES_ADDRESSSPACEFILE_READ_INPUTARGUMENTS 11727 // Variable #define UA_NS0ID_SERVER_NAMESPACES_ADDRESSSPACEFILE_READ_OUTPUTARGUMENTS 11728 // Variable #define UA_NS0ID_SERVER_NAMESPACES_ADDRESSSPACEFILE_WRITE 11729 // Method #define UA_NS0ID_SERVER_NAMESPACES_ADDRESSSPACEFILE_WRITE_INPUTARGUMENTS 11730 // Variable #define UA_NS0ID_SERVER_NAMESPACES_ADDRESSSPACEFILE_GETPOSITION 11731 // Method #define UA_NS0ID_SERVER_NAMESPACES_ADDRESSSPACEFILE_GETPOSITION_INPUTARGUMENTS 11732 // Variable #define UA_NS0ID_SERVER_NAMESPACES_ADDRESSSPACEFILE_GETPOSITION_OUTPUTARGUMENTS 11733 // Variable #define UA_NS0ID_SERVER_NAMESPACES_ADDRESSSPACEFILE_SETPOSITION 11734 // Method #define UA_NS0ID_SERVER_NAMESPACES_ADDRESSSPACEFILE_SETPOSITION_INPUTARGUMENTS 11735 // Variable #define UA_NS0ID_SERVER_NAMESPACES_ADDRESSSPACEFILE_EXPORTNAMESPACE 11736 // Method #define UA_NS0ID_BITFIELDMASKDATATYPE 11737 // DataType #define UA_NS0ID_OPENMETHODTYPE 11738 // Method #define UA_NS0ID_CLOSEMETHODTYPE 11741 // Method #define UA_NS0ID_READMETHODTYPE 11743 // Method #define UA_NS0ID_WRITEMETHODTYPE 11746 // Method #define UA_NS0ID_GETPOSITIONMETHODTYPE 11748 // Method #define UA_NS0ID_SETPOSITIONMETHODTYPE 11751 // Method #define UA_NS0ID_SYSTEMOFFNORMALALARMTYPE 11753 // ObjectType #define UA_NS0ID_AUDITPROGRAMTRANSITIONEVENTTYPE 11856 // ObjectType #define UA_NS0ID_HACONFIGURATION_AGGREGATEFUNCTIONS 11877 // Object #define UA_NS0ID_NODECLASS_ENUMVALUES 11878 // Variable #define UA_NS0ID_INSTANCENODE 11879 // DataType #define UA_NS0ID_TYPENODE 11880 // DataType #define UA_NS0ID_NODEATTRIBUTESMASK_ENUMVALUES 11881 // Variable #define UA_NS0ID_ATTRIBUTEWRITEMASK_ENUMVALUES 11882 // Variable #define UA_NS0ID_BROWSERESULTMASK_ENUMVALUES 11883 // Variable #define UA_NS0ID_OPENFILEMODE 11939 // DataType #define UA_NS0ID_OPENFILEMODE_ENUMVALUES 11940 // Variable #define UA_NS0ID_MODELCHANGESTRUCTUREVERBMASK 11941 // DataType #define UA_NS0ID_MODELCHANGESTRUCTUREVERBMASK_ENUMVALUES 11942 // Variable #define UA_NS0ID_ENDPOINTURLLISTDATATYPE 11943 // DataType #define UA_NS0ID_NETWORKGROUPDATATYPE 11944 // DataType #define UA_NS0ID_NONTRANSPARENTNETWORKREDUNDANCYTYPE 11945 // ObjectType #define UA_NS0ID_ARRAYITEMTYPE 12021 // VariableType #define UA_NS0ID_YARRAYITEMTYPE 12029 // VariableType #define UA_NS0ID_XYARRAYITEMTYPE 12038 // VariableType #define UA_NS0ID_IMAGEITEMTYPE 12047 // VariableType #define UA_NS0ID_CUBEITEMTYPE 12057 // VariableType #define UA_NS0ID_NDIMENSIONARRAYITEMTYPE 12068 // VariableType #define UA_NS0ID_AXISSCALEENUMERATION 12077 // DataType #define UA_NS0ID_AXISSCALEENUMERATION_ENUMSTRINGS 12078 // Variable #define UA_NS0ID_AXISINFORMATION 12079 // DataType #define UA_NS0ID_XVTYPE 12080 // DataType #define UA_NS0ID_SERVER_SERVERCAPABILITIES_OPERATIONLIMITS_MAXNODESPERHISTORYREADDATA 12165 // Variable #define UA_NS0ID_SERVER_SERVERCAPABILITIES_OPERATIONLIMITS_MAXNODESPERHISTORYREADEVENTS 12166 // Variable #define UA_NS0ID_SERVER_SERVERCAPABILITIES_OPERATIONLIMITS_MAXNODESPERHISTORYUPDATEDATA 12167 // Variable #define UA_NS0ID_SERVER_SERVERCAPABILITIES_OPERATIONLIMITS_MAXNODESPERHISTORYUPDATEEVENTS 12168 // Variable #define UA_NS0ID_VIEWVERSION 12170 // Variable #define UA_NS0ID_COMPLEXNUMBERTYPE 12171 // DataType #define UA_NS0ID_DOUBLECOMPLEXNUMBERTYPE 12172 // DataType #define UA_NS0ID_HASMODELPARENT 50 // ReferenceType /*********************************** amalgamated original file "/home/wn/Sources/open62541-open62541-395ce48/build/src_generated/ua_types_generated.h" ***********************************/ /* Generated from Opc.Ua.Types.bsd with script /home/wn/Sources/open62541-open62541-395ce48/tools/generate_datatypes.py * on host debianX by user wn at 2016-06-07 04:48:38 */ #ifdef __cplusplus extern "C" { #endif #ifdef UA_INTERNAL #endif /** * Additional Data Type Definitions * ================================ */ #define UA_TYPES_COUNT 158 extern UA_EXPORT const UA_DataType UA_TYPES[UA_TYPES_COUNT]; /** * Boolean * ------- */ #define UA_TYPES_BOOLEAN 0 static UA_INLINE void UA_Boolean_init(UA_Boolean *p) { memset(p, 0, sizeof(UA_Boolean)); } static UA_INLINE UA_Boolean * UA_Boolean_new(void) { return (UA_Boolean*) UA_new(&UA_TYPES[UA_TYPES_BOOLEAN]); } static UA_INLINE UA_StatusCode UA_Boolean_copy(const UA_Boolean *src, UA_Boolean *dst) { *dst = *src; return UA_STATUSCODE_GOOD; } static UA_INLINE void UA_Boolean_deleteMembers(UA_Boolean *p) { } static UA_INLINE void UA_Boolean_delete(UA_Boolean *p) { UA_delete(p, &UA_TYPES[UA_TYPES_BOOLEAN]); } /** * SByte * ----- */ #define UA_TYPES_SBYTE 1 static UA_INLINE void UA_SByte_init(UA_SByte *p) { memset(p, 0, sizeof(UA_SByte)); } static UA_INLINE UA_SByte * UA_SByte_new(void) { return (UA_SByte*) UA_new(&UA_TYPES[UA_TYPES_SBYTE]); } static UA_INLINE UA_StatusCode UA_SByte_copy(const UA_SByte *src, UA_SByte *dst) { *dst = *src; return UA_STATUSCODE_GOOD; } static UA_INLINE void UA_SByte_deleteMembers(UA_SByte *p) { } static UA_INLINE void UA_SByte_delete(UA_SByte *p) { UA_delete(p, &UA_TYPES[UA_TYPES_SBYTE]); } /** * Byte * ---- */ #define UA_TYPES_BYTE 2 static UA_INLINE void UA_Byte_init(UA_Byte *p) { memset(p, 0, sizeof(UA_Byte)); } static UA_INLINE UA_Byte * UA_Byte_new(void) { return (UA_Byte*) UA_new(&UA_TYPES[UA_TYPES_BYTE]); } static UA_INLINE UA_StatusCode UA_Byte_copy(const UA_Byte *src, UA_Byte *dst) { *dst = *src; return UA_STATUSCODE_GOOD; } static UA_INLINE void UA_Byte_deleteMembers(UA_Byte *p) { } static UA_INLINE void UA_Byte_delete(UA_Byte *p) { UA_delete(p, &UA_TYPES[UA_TYPES_BYTE]); } /** * Int16 * ----- */ #define UA_TYPES_INT16 3 static UA_INLINE void UA_Int16_init(UA_Int16 *p) { memset(p, 0, sizeof(UA_Int16)); } static UA_INLINE UA_Int16 * UA_Int16_new(void) { return (UA_Int16*) UA_new(&UA_TYPES[UA_TYPES_INT16]); } static UA_INLINE UA_StatusCode UA_Int16_copy(const UA_Int16 *src, UA_Int16 *dst) { *dst = *src; return UA_STATUSCODE_GOOD; } static UA_INLINE void UA_Int16_deleteMembers(UA_Int16 *p) { } static UA_INLINE void UA_Int16_delete(UA_Int16 *p) { UA_delete(p, &UA_TYPES[UA_TYPES_INT16]); } /** * UInt16 * ------ */ #define UA_TYPES_UINT16 4 static UA_INLINE void UA_UInt16_init(UA_UInt16 *p) { memset(p, 0, sizeof(UA_UInt16)); } static UA_INLINE UA_UInt16 * UA_UInt16_new(void) { return (UA_UInt16*) UA_new(&UA_TYPES[UA_TYPES_UINT16]); } static UA_INLINE UA_StatusCode UA_UInt16_copy(const UA_UInt16 *src, UA_UInt16 *dst) { *dst = *src; return UA_STATUSCODE_GOOD; } static UA_INLINE void UA_UInt16_deleteMembers(UA_UInt16 *p) { } static UA_INLINE void UA_UInt16_delete(UA_UInt16 *p) { UA_delete(p, &UA_TYPES[UA_TYPES_UINT16]); } /** * Int32 * ----- */ #define UA_TYPES_INT32 5 static UA_INLINE void UA_Int32_init(UA_Int32 *p) { memset(p, 0, sizeof(UA_Int32)); } static UA_INLINE UA_Int32 * UA_Int32_new(void) { return (UA_Int32*) UA_new(&UA_TYPES[UA_TYPES_INT32]); } static UA_INLINE UA_StatusCode UA_Int32_copy(const UA_Int32 *src, UA_Int32 *dst) { *dst = *src; return UA_STATUSCODE_GOOD; } static UA_INLINE void UA_Int32_deleteMembers(UA_Int32 *p) { } static UA_INLINE void UA_Int32_delete(UA_Int32 *p) { UA_delete(p, &UA_TYPES[UA_TYPES_INT32]); } /** * UInt32 * ------ */ #define UA_TYPES_UINT32 6 static UA_INLINE void UA_UInt32_init(UA_UInt32 *p) { memset(p, 0, sizeof(UA_UInt32)); } static UA_INLINE UA_UInt32 * UA_UInt32_new(void) { return (UA_UInt32*) UA_new(&UA_TYPES[UA_TYPES_UINT32]); } static UA_INLINE UA_StatusCode UA_UInt32_copy(const UA_UInt32 *src, UA_UInt32 *dst) { *dst = *src; return UA_STATUSCODE_GOOD; } static UA_INLINE void UA_UInt32_deleteMembers(UA_UInt32 *p) { } static UA_INLINE void UA_UInt32_delete(UA_UInt32 *p) { UA_delete(p, &UA_TYPES[UA_TYPES_UINT32]); } /** * Int64 * ----- */ #define UA_TYPES_INT64 7 static UA_INLINE void UA_Int64_init(UA_Int64 *p) { memset(p, 0, sizeof(UA_Int64)); } static UA_INLINE UA_Int64 * UA_Int64_new(void) { return (UA_Int64*) UA_new(&UA_TYPES[UA_TYPES_INT64]); } static UA_INLINE UA_StatusCode UA_Int64_copy(const UA_Int64 *src, UA_Int64 *dst) { *dst = *src; return UA_STATUSCODE_GOOD; } static UA_INLINE void UA_Int64_deleteMembers(UA_Int64 *p) { } static UA_INLINE void UA_Int64_delete(UA_Int64 *p) { UA_delete(p, &UA_TYPES[UA_TYPES_INT64]); } /** * UInt64 * ------ */ #define UA_TYPES_UINT64 8 static UA_INLINE void UA_UInt64_init(UA_UInt64 *p) { memset(p, 0, sizeof(UA_UInt64)); } static UA_INLINE UA_UInt64 * UA_UInt64_new(void) { return (UA_UInt64*) UA_new(&UA_TYPES[UA_TYPES_UINT64]); } static UA_INLINE UA_StatusCode UA_UInt64_copy(const UA_UInt64 *src, UA_UInt64 *dst) { *dst = *src; return UA_STATUSCODE_GOOD; } static UA_INLINE void UA_UInt64_deleteMembers(UA_UInt64 *p) { } static UA_INLINE void UA_UInt64_delete(UA_UInt64 *p) { UA_delete(p, &UA_TYPES[UA_TYPES_UINT64]); } /** * Float * ----- */ #define UA_TYPES_FLOAT 9 static UA_INLINE void UA_Float_init(UA_Float *p) { memset(p, 0, sizeof(UA_Float)); } static UA_INLINE UA_Float * UA_Float_new(void) { return (UA_Float*) UA_new(&UA_TYPES[UA_TYPES_FLOAT]); } static UA_INLINE UA_StatusCode UA_Float_copy(const UA_Float *src, UA_Float *dst) { *dst = *src; return UA_STATUSCODE_GOOD; } static UA_INLINE void UA_Float_deleteMembers(UA_Float *p) { } static UA_INLINE void UA_Float_delete(UA_Float *p) { UA_delete(p, &UA_TYPES[UA_TYPES_FLOAT]); } /** * Double * ------ */ #define UA_TYPES_DOUBLE 10 static UA_INLINE void UA_Double_init(UA_Double *p) { memset(p, 0, sizeof(UA_Double)); } static UA_INLINE UA_Double * UA_Double_new(void) { return (UA_Double*) UA_new(&UA_TYPES[UA_TYPES_DOUBLE]); } static UA_INLINE UA_StatusCode UA_Double_copy(const UA_Double *src, UA_Double *dst) { *dst = *src; return UA_STATUSCODE_GOOD; } static UA_INLINE void UA_Double_deleteMembers(UA_Double *p) { } static UA_INLINE void UA_Double_delete(UA_Double *p) { UA_delete(p, &UA_TYPES[UA_TYPES_DOUBLE]); } /** * String * ------ */ #define UA_TYPES_STRING 11 static UA_INLINE void UA_String_init(UA_String *p) { memset(p, 0, sizeof(UA_String)); } static UA_INLINE UA_String * UA_String_new(void) { return (UA_String*) UA_new(&UA_TYPES[UA_TYPES_STRING]); } static UA_INLINE UA_StatusCode UA_String_copy(const UA_String *src, UA_String *dst) { return UA_copy(src, dst, &UA_TYPES[UA_TYPES_STRING]); } static UA_INLINE void UA_String_deleteMembers(UA_String *p) { UA_deleteMembers(p, &UA_TYPES[UA_TYPES_STRING]); } static UA_INLINE void UA_String_delete(UA_String *p) { UA_delete(p, &UA_TYPES[UA_TYPES_STRING]); } /** * DateTime * -------- */ #define UA_TYPES_DATETIME 12 static UA_INLINE void UA_DateTime_init(UA_DateTime *p) { memset(p, 0, sizeof(UA_DateTime)); } static UA_INLINE UA_DateTime * UA_DateTime_new(void) { return (UA_DateTime*) UA_new(&UA_TYPES[UA_TYPES_DATETIME]); } static UA_INLINE UA_StatusCode UA_DateTime_copy(const UA_DateTime *src, UA_DateTime *dst) { *dst = *src; return UA_STATUSCODE_GOOD; } static UA_INLINE void UA_DateTime_deleteMembers(UA_DateTime *p) { } static UA_INLINE void UA_DateTime_delete(UA_DateTime *p) { UA_delete(p, &UA_TYPES[UA_TYPES_DATETIME]); } /** * Guid * ---- */ #define UA_TYPES_GUID 13 static UA_INLINE void UA_Guid_init(UA_Guid *p) { memset(p, 0, sizeof(UA_Guid)); } static UA_INLINE UA_Guid * UA_Guid_new(void) { return (UA_Guid*) UA_new(&UA_TYPES[UA_TYPES_GUID]); } static UA_INLINE UA_StatusCode UA_Guid_copy(const UA_Guid *src, UA_Guid *dst) { *dst = *src; return UA_STATUSCODE_GOOD; } static UA_INLINE void UA_Guid_deleteMembers(UA_Guid *p) { } static UA_INLINE void UA_Guid_delete(UA_Guid *p) { UA_delete(p, &UA_TYPES[UA_TYPES_GUID]); } /** * ByteString * ---------- */ #define UA_TYPES_BYTESTRING 14 static UA_INLINE void UA_ByteString_init(UA_ByteString *p) { memset(p, 0, sizeof(UA_ByteString)); } static UA_INLINE UA_ByteString * UA_ByteString_new(void) { return (UA_ByteString*) UA_new(&UA_TYPES[UA_TYPES_BYTESTRING]); } static UA_INLINE UA_StatusCode UA_ByteString_copy(const UA_ByteString *src, UA_ByteString *dst) { return UA_copy(src, dst, &UA_TYPES[UA_TYPES_BYTESTRING]); } static UA_INLINE void UA_ByteString_deleteMembers(UA_ByteString *p) { UA_deleteMembers(p, &UA_TYPES[UA_TYPES_BYTESTRING]); } static UA_INLINE void UA_ByteString_delete(UA_ByteString *p) { UA_delete(p, &UA_TYPES[UA_TYPES_BYTESTRING]); } /** * XmlElement * ---------- */ #define UA_TYPES_XMLELEMENT 15 static UA_INLINE void UA_XmlElement_init(UA_XmlElement *p) { memset(p, 0, sizeof(UA_XmlElement)); } static UA_INLINE UA_XmlElement * UA_XmlElement_new(void) { return (UA_XmlElement*) UA_new(&UA_TYPES[UA_TYPES_XMLELEMENT]); } static UA_INLINE UA_StatusCode UA_XmlElement_copy(const UA_XmlElement *src, UA_XmlElement *dst) { return UA_copy(src, dst, &UA_TYPES[UA_TYPES_XMLELEMENT]); } static UA_INLINE void UA_XmlElement_deleteMembers(UA_XmlElement *p) { UA_deleteMembers(p, &UA_TYPES[UA_TYPES_XMLELEMENT]); } static UA_INLINE void UA_XmlElement_delete(UA_XmlElement *p) { UA_delete(p, &UA_TYPES[UA_TYPES_XMLELEMENT]); } /** * NodeId * ------ */ #define UA_TYPES_NODEID 16 static UA_INLINE void UA_NodeId_init(UA_NodeId *p) { memset(p, 0, sizeof(UA_NodeId)); } static UA_INLINE UA_NodeId * UA_NodeId_new(void) { return (UA_NodeId*) UA_new(&UA_TYPES[UA_TYPES_NODEID]); } static UA_INLINE UA_StatusCode UA_NodeId_copy(const UA_NodeId *src, UA_NodeId *dst) { return UA_copy(src, dst, &UA_TYPES[UA_TYPES_NODEID]); } static UA_INLINE void UA_NodeId_deleteMembers(UA_NodeId *p) { UA_deleteMembers(p, &UA_TYPES[UA_TYPES_NODEID]); } static UA_INLINE void UA_NodeId_delete(UA_NodeId *p) { UA_delete(p, &UA_TYPES[UA_TYPES_NODEID]); } /** * ExpandedNodeId * -------------- */ #define UA_TYPES_EXPANDEDNODEID 17 static UA_INLINE void UA_ExpandedNodeId_init(UA_ExpandedNodeId *p) { memset(p, 0, sizeof(UA_ExpandedNodeId)); } static UA_INLINE UA_ExpandedNodeId * UA_ExpandedNodeId_new(void) { return (UA_ExpandedNodeId*) UA_new(&UA_TYPES[UA_TYPES_EXPANDEDNODEID]); } static UA_INLINE UA_StatusCode UA_ExpandedNodeId_copy(const UA_ExpandedNodeId *src, UA_ExpandedNodeId *dst) { return UA_copy(src, dst, &UA_TYPES[UA_TYPES_EXPANDEDNODEID]); } static UA_INLINE void UA_ExpandedNodeId_deleteMembers(UA_ExpandedNodeId *p) { UA_deleteMembers(p, &UA_TYPES[UA_TYPES_EXPANDEDNODEID]); } static UA_INLINE void UA_ExpandedNodeId_delete(UA_ExpandedNodeId *p) { UA_delete(p, &UA_TYPES[UA_TYPES_EXPANDEDNODEID]); } /** * StatusCode * ---------- */ #define UA_TYPES_STATUSCODE 18 static UA_INLINE void UA_StatusCode_init(UA_StatusCode *p) { memset(p, 0, sizeof(UA_StatusCode)); } static UA_INLINE UA_StatusCode * UA_StatusCode_new(void) { return (UA_StatusCode*) UA_new(&UA_TYPES[UA_TYPES_STATUSCODE]); } static UA_INLINE UA_StatusCode UA_StatusCode_copy(const UA_StatusCode *src, UA_StatusCode *dst) { *dst = *src; return UA_STATUSCODE_GOOD; } static UA_INLINE void UA_StatusCode_deleteMembers(UA_StatusCode *p) { } static UA_INLINE void UA_StatusCode_delete(UA_StatusCode *p) { UA_delete(p, &UA_TYPES[UA_TYPES_STATUSCODE]); } /** * QualifiedName * ------------- */ #define UA_TYPES_QUALIFIEDNAME 19 static UA_INLINE void UA_QualifiedName_init(UA_QualifiedName *p) { memset(p, 0, sizeof(UA_QualifiedName)); } static UA_INLINE UA_QualifiedName * UA_QualifiedName_new(void) { return (UA_QualifiedName*) UA_new(&UA_TYPES[UA_TYPES_QUALIFIEDNAME]); } static UA_INLINE UA_StatusCode UA_QualifiedName_copy(const UA_QualifiedName *src, UA_QualifiedName *dst) { return UA_copy(src, dst, &UA_TYPES[UA_TYPES_QUALIFIEDNAME]); } static UA_INLINE void UA_QualifiedName_deleteMembers(UA_QualifiedName *p) { UA_deleteMembers(p, &UA_TYPES[UA_TYPES_QUALIFIEDNAME]); } static UA_INLINE void UA_QualifiedName_delete(UA_QualifiedName *p) { UA_delete(p, &UA_TYPES[UA_TYPES_QUALIFIEDNAME]); } /** * LocalizedText * ------------- */ #define UA_TYPES_LOCALIZEDTEXT 20 static UA_INLINE void UA_LocalizedText_init(UA_LocalizedText *p) { memset(p, 0, sizeof(UA_LocalizedText)); } static UA_INLINE UA_LocalizedText * UA_LocalizedText_new(void) { return (UA_LocalizedText*) UA_new(&UA_TYPES[UA_TYPES_LOCALIZEDTEXT]); } static UA_INLINE UA_StatusCode UA_LocalizedText_copy(const UA_LocalizedText *src, UA_LocalizedText *dst) { return UA_copy(src, dst, &UA_TYPES[UA_TYPES_LOCALIZEDTEXT]); } static UA_INLINE void UA_LocalizedText_deleteMembers(UA_LocalizedText *p) { UA_deleteMembers(p, &UA_TYPES[UA_TYPES_LOCALIZEDTEXT]); } static UA_INLINE void UA_LocalizedText_delete(UA_LocalizedText *p) { UA_delete(p, &UA_TYPES[UA_TYPES_LOCALIZEDTEXT]); } /** * ExtensionObject * --------------- */ #define UA_TYPES_EXTENSIONOBJECT 21 static UA_INLINE void UA_ExtensionObject_init(UA_ExtensionObject *p) { memset(p, 0, sizeof(UA_ExtensionObject)); } static UA_INLINE UA_ExtensionObject * UA_ExtensionObject_new(void) { return (UA_ExtensionObject*) UA_new(&UA_TYPES[UA_TYPES_EXTENSIONOBJECT]); } static UA_INLINE UA_StatusCode UA_ExtensionObject_copy(const UA_ExtensionObject *src, UA_ExtensionObject *dst) { return UA_copy(src, dst, &UA_TYPES[UA_TYPES_EXTENSIONOBJECT]); } static UA_INLINE void UA_ExtensionObject_deleteMembers(UA_ExtensionObject *p) { UA_deleteMembers(p, &UA_TYPES[UA_TYPES_EXTENSIONOBJECT]); } static UA_INLINE void UA_ExtensionObject_delete(UA_ExtensionObject *p) { UA_delete(p, &UA_TYPES[UA_TYPES_EXTENSIONOBJECT]); } /** * DataValue * --------- */ #define UA_TYPES_DATAVALUE 22 static UA_INLINE void UA_DataValue_init(UA_DataValue *p) { memset(p, 0, sizeof(UA_DataValue)); } static UA_INLINE UA_DataValue * UA_DataValue_new(void) { return (UA_DataValue*) UA_new(&UA_TYPES[UA_TYPES_DATAVALUE]); } static UA_INLINE UA_StatusCode UA_DataValue_copy(const UA_DataValue *src, UA_DataValue *dst) { return UA_copy(src, dst, &UA_TYPES[UA_TYPES_DATAVALUE]); } static UA_INLINE void UA_DataValue_deleteMembers(UA_DataValue *p) { UA_deleteMembers(p, &UA_TYPES[UA_TYPES_DATAVALUE]); } static UA_INLINE void UA_DataValue_delete(UA_DataValue *p) { UA_delete(p, &UA_TYPES[UA_TYPES_DATAVALUE]); } /** * Variant * ------- */ #define UA_TYPES_VARIANT 23 static UA_INLINE void UA_Variant_init(UA_Variant *p) { memset(p, 0, sizeof(UA_Variant)); } static UA_INLINE UA_Variant * UA_Variant_new(void) { return (UA_Variant*) UA_new(&UA_TYPES[UA_TYPES_VARIANT]); } static UA_INLINE UA_StatusCode UA_Variant_copy(const UA_Variant *src, UA_Variant *dst) { return UA_copy(src, dst, &UA_TYPES[UA_TYPES_VARIANT]); } static UA_INLINE void UA_Variant_deleteMembers(UA_Variant *p) { UA_deleteMembers(p, &UA_TYPES[UA_TYPES_VARIANT]); } static UA_INLINE void UA_Variant_delete(UA_Variant *p) { UA_delete(p, &UA_TYPES[UA_TYPES_VARIANT]); } /** * DiagnosticInfo * -------------- */ #define UA_TYPES_DIAGNOSTICINFO 24 static UA_INLINE void UA_DiagnosticInfo_init(UA_DiagnosticInfo *p) { memset(p, 0, sizeof(UA_DiagnosticInfo)); } static UA_INLINE UA_DiagnosticInfo * UA_DiagnosticInfo_new(void) { return (UA_DiagnosticInfo*) UA_new(&UA_TYPES[UA_TYPES_DIAGNOSTICINFO]); } static UA_INLINE UA_StatusCode UA_DiagnosticInfo_copy(const UA_DiagnosticInfo *src, UA_DiagnosticInfo *dst) { return UA_copy(src, dst, &UA_TYPES[UA_TYPES_DIAGNOSTICINFO]); } static UA_INLINE void UA_DiagnosticInfo_deleteMembers(UA_DiagnosticInfo *p) { UA_deleteMembers(p, &UA_TYPES[UA_TYPES_DIAGNOSTICINFO]); } static UA_INLINE void UA_DiagnosticInfo_delete(UA_DiagnosticInfo *p) { UA_delete(p, &UA_TYPES[UA_TYPES_DIAGNOSTICINFO]); } /** * SignedSoftwareCertificate * ------------------------- * A software certificate with a digital signature. */ typedef struct { UA_ByteString certificateData; UA_ByteString signature; } UA_SignedSoftwareCertificate; #define UA_TYPES_SIGNEDSOFTWARECERTIFICATE 25 static UA_INLINE void UA_SignedSoftwareCertificate_init(UA_SignedSoftwareCertificate *p) { memset(p, 0, sizeof(UA_SignedSoftwareCertificate)); } static UA_INLINE UA_SignedSoftwareCertificate * UA_SignedSoftwareCertificate_new(void) { return (UA_SignedSoftwareCertificate*) UA_new(&UA_TYPES[UA_TYPES_SIGNEDSOFTWARECERTIFICATE]); } static UA_INLINE UA_StatusCode UA_SignedSoftwareCertificate_copy(const UA_SignedSoftwareCertificate *src, UA_SignedSoftwareCertificate *dst) { return UA_copy(src, dst, &UA_TYPES[UA_TYPES_SIGNEDSOFTWARECERTIFICATE]); } static UA_INLINE void UA_SignedSoftwareCertificate_deleteMembers(UA_SignedSoftwareCertificate *p) { UA_deleteMembers(p, &UA_TYPES[UA_TYPES_SIGNEDSOFTWARECERTIFICATE]); } static UA_INLINE void UA_SignedSoftwareCertificate_delete(UA_SignedSoftwareCertificate *p) { UA_delete(p, &UA_TYPES[UA_TYPES_SIGNEDSOFTWARECERTIFICATE]); } /** * BrowsePathTarget * ---------------- * The target of the translated path. */ typedef struct { UA_ExpandedNodeId targetId; UA_UInt32 remainingPathIndex; } UA_BrowsePathTarget; #define UA_TYPES_BROWSEPATHTARGET 26 static UA_INLINE void UA_BrowsePathTarget_init(UA_BrowsePathTarget *p) { memset(p, 0, sizeof(UA_BrowsePathTarget)); } static UA_INLINE UA_BrowsePathTarget * UA_BrowsePathTarget_new(void) { return (UA_BrowsePathTarget*) UA_new(&UA_TYPES[UA_TYPES_BROWSEPATHTARGET]); } static UA_INLINE UA_StatusCode UA_BrowsePathTarget_copy(const UA_BrowsePathTarget *src, UA_BrowsePathTarget *dst) { return UA_copy(src, dst, &UA_TYPES[UA_TYPES_BROWSEPATHTARGET]); } static UA_INLINE void UA_BrowsePathTarget_deleteMembers(UA_BrowsePathTarget *p) { UA_deleteMembers(p, &UA_TYPES[UA_TYPES_BROWSEPATHTARGET]); } static UA_INLINE void UA_BrowsePathTarget_delete(UA_BrowsePathTarget *p) { UA_delete(p, &UA_TYPES[UA_TYPES_BROWSEPATHTARGET]); } /** * ViewAttributes * -------------- * The attributes for a view node. */ typedef struct { UA_UInt32 specifiedAttributes; UA_LocalizedText displayName; UA_LocalizedText description; UA_UInt32 writeMask; UA_UInt32 userWriteMask; UA_Boolean containsNoLoops; UA_Byte eventNotifier; } UA_ViewAttributes; #define UA_TYPES_VIEWATTRIBUTES 27 static UA_INLINE void UA_ViewAttributes_init(UA_ViewAttributes *p) { memset(p, 0, sizeof(UA_ViewAttributes)); } static UA_INLINE UA_ViewAttributes * UA_ViewAttributes_new(void) { return (UA_ViewAttributes*) UA_new(&UA_TYPES[UA_TYPES_VIEWATTRIBUTES]); } static UA_INLINE UA_StatusCode UA_ViewAttributes_copy(const UA_ViewAttributes *src, UA_ViewAttributes *dst) { return UA_copy(src, dst, &UA_TYPES[UA_TYPES_VIEWATTRIBUTES]); } static UA_INLINE void UA_ViewAttributes_deleteMembers(UA_ViewAttributes *p) { UA_deleteMembers(p, &UA_TYPES[UA_TYPES_VIEWATTRIBUTES]); } static UA_INLINE void UA_ViewAttributes_delete(UA_ViewAttributes *p) { UA_delete(p, &UA_TYPES[UA_TYPES_VIEWATTRIBUTES]); } /** * BrowseResultMask * ---------------- * A bit mask which specifies what should be returned in a browse response. */ typedef enum { UA_BROWSERESULTMASK_NONE = 0, UA_BROWSERESULTMASK_REFERENCETYPEID = 1, UA_BROWSERESULTMASK_ISFORWARD = 2, UA_BROWSERESULTMASK_NODECLASS = 4, UA_BROWSERESULTMASK_BROWSENAME = 8, UA_BROWSERESULTMASK_DISPLAYNAME = 16, UA_BROWSERESULTMASK_TYPEDEFINITION = 32, UA_BROWSERESULTMASK_ALL = 63, UA_BROWSERESULTMASK_REFERENCETYPEINFO = 3, UA_BROWSERESULTMASK_TARGETINFO = 60 } UA_BrowseResultMask; #define UA_TYPES_BROWSERESULTMASK 28 static UA_INLINE void UA_BrowseResultMask_init(UA_BrowseResultMask *p) { memset(p, 0, sizeof(UA_BrowseResultMask)); } static UA_INLINE UA_BrowseResultMask * UA_BrowseResultMask_new(void) { return (UA_BrowseResultMask*) UA_new(&UA_TYPES[UA_TYPES_BROWSERESULTMASK]); } static UA_INLINE UA_StatusCode UA_BrowseResultMask_copy(const UA_BrowseResultMask *src, UA_BrowseResultMask *dst) { *dst = *src; return UA_STATUSCODE_GOOD; } static UA_INLINE void UA_BrowseResultMask_deleteMembers(UA_BrowseResultMask *p) { } static UA_INLINE void UA_BrowseResultMask_delete(UA_BrowseResultMask *p) { UA_delete(p, &UA_TYPES[UA_TYPES_BROWSERESULTMASK]); } /** * RequestHeader * ------------- * The header passed with every server request. */ typedef struct { UA_NodeId authenticationToken; UA_DateTime timestamp; UA_UInt32 requestHandle; UA_UInt32 returnDiagnostics; UA_String auditEntryId; UA_UInt32 timeoutHint; UA_ExtensionObject additionalHeader; } UA_RequestHeader; #define UA_TYPES_REQUESTHEADER 29 static UA_INLINE void UA_RequestHeader_init(UA_RequestHeader *p) { memset(p, 0, sizeof(UA_RequestHeader)); } static UA_INLINE UA_RequestHeader * UA_RequestHeader_new(void) { return (UA_RequestHeader*) UA_new(&UA_TYPES[UA_TYPES_REQUESTHEADER]); } static UA_INLINE UA_StatusCode UA_RequestHeader_copy(const UA_RequestHeader *src, UA_RequestHeader *dst) { return UA_copy(src, dst, &UA_TYPES[UA_TYPES_REQUESTHEADER]); } static UA_INLINE void UA_RequestHeader_deleteMembers(UA_RequestHeader *p) { UA_deleteMembers(p, &UA_TYPES[UA_TYPES_REQUESTHEADER]); } static UA_INLINE void UA_RequestHeader_delete(UA_RequestHeader *p) { UA_delete(p, &UA_TYPES[UA_TYPES_REQUESTHEADER]); } /** * MonitoredItemModifyResult * ------------------------- */ typedef struct { UA_StatusCode statusCode; UA_Double revisedSamplingInterval; UA_UInt32 revisedQueueSize; UA_ExtensionObject filterResult; } UA_MonitoredItemModifyResult; #define UA_TYPES_MONITOREDITEMMODIFYRESULT 30 static UA_INLINE void UA_MonitoredItemModifyResult_init(UA_MonitoredItemModifyResult *p) { memset(p, 0, sizeof(UA_MonitoredItemModifyResult)); } static UA_INLINE UA_MonitoredItemModifyResult * UA_MonitoredItemModifyResult_new(void) { return (UA_MonitoredItemModifyResult*) UA_new(&UA_TYPES[UA_TYPES_MONITOREDITEMMODIFYRESULT]); } static UA_INLINE UA_StatusCode UA_MonitoredItemModifyResult_copy(const UA_MonitoredItemModifyResult *src, UA_MonitoredItemModifyResult *dst) { return UA_copy(src, dst, &UA_TYPES[UA_TYPES_MONITOREDITEMMODIFYRESULT]); } static UA_INLINE void UA_MonitoredItemModifyResult_deleteMembers(UA_MonitoredItemModifyResult *p) { UA_deleteMembers(p, &UA_TYPES[UA_TYPES_MONITOREDITEMMODIFYRESULT]); } static UA_INLINE void UA_MonitoredItemModifyResult_delete(UA_MonitoredItemModifyResult *p) { UA_delete(p, &UA_TYPES[UA_TYPES_MONITOREDITEMMODIFYRESULT]); } /** * ViewDescription * --------------- * The view to browse. */ typedef struct { UA_NodeId viewId; UA_DateTime timestamp; UA_UInt32 viewVersion; } UA_ViewDescription; #define UA_TYPES_VIEWDESCRIPTION 31 static UA_INLINE void UA_ViewDescription_init(UA_ViewDescription *p) { memset(p, 0, sizeof(UA_ViewDescription)); } static UA_INLINE UA_ViewDescription * UA_ViewDescription_new(void) { return (UA_ViewDescription*) UA_new(&UA_TYPES[UA_TYPES_VIEWDESCRIPTION]); } static UA_INLINE UA_StatusCode UA_ViewDescription_copy(const UA_ViewDescription *src, UA_ViewDescription *dst) { return UA_copy(src, dst, &UA_TYPES[UA_TYPES_VIEWDESCRIPTION]); } static UA_INLINE void UA_ViewDescription_deleteMembers(UA_ViewDescription *p) { UA_deleteMembers(p, &UA_TYPES[UA_TYPES_VIEWDESCRIPTION]); } static UA_INLINE void UA_ViewDescription_delete(UA_ViewDescription *p) { UA_delete(p, &UA_TYPES[UA_TYPES_VIEWDESCRIPTION]); } /** * CloseSecureChannelRequest * ------------------------- * Closes a secure channel. */ typedef struct { UA_RequestHeader requestHeader; } UA_CloseSecureChannelRequest; #define UA_TYPES_CLOSESECURECHANNELREQUEST 32 static UA_INLINE void UA_CloseSecureChannelRequest_init(UA_CloseSecureChannelRequest *p) { memset(p, 0, sizeof(UA_CloseSecureChannelRequest)); } static UA_INLINE UA_CloseSecureChannelRequest * UA_CloseSecureChannelRequest_new(void) { return (UA_CloseSecureChannelRequest*) UA_new(&UA_TYPES[UA_TYPES_CLOSESECURECHANNELREQUEST]); } static UA_INLINE UA_StatusCode UA_CloseSecureChannelRequest_copy(const UA_CloseSecureChannelRequest *src, UA_CloseSecureChannelRequest *dst) { return UA_copy(src, dst, &UA_TYPES[UA_TYPES_CLOSESECURECHANNELREQUEST]); } static UA_INLINE void UA_CloseSecureChannelRequest_deleteMembers(UA_CloseSecureChannelRequest *p) { UA_deleteMembers(p, &UA_TYPES[UA_TYPES_CLOSESECURECHANNELREQUEST]); } static UA_INLINE void UA_CloseSecureChannelRequest_delete(UA_CloseSecureChannelRequest *p) { UA_delete(p, &UA_TYPES[UA_TYPES_CLOSESECURECHANNELREQUEST]); } /** * AddNodesResult * -------------- * A result of an add node operation. */ typedef struct { UA_StatusCode statusCode; UA_NodeId addedNodeId; } UA_AddNodesResult; #define UA_TYPES_ADDNODESRESULT 33 static UA_INLINE void UA_AddNodesResult_init(UA_AddNodesResult *p) { memset(p, 0, sizeof(UA_AddNodesResult)); } static UA_INLINE UA_AddNodesResult * UA_AddNodesResult_new(void) { return (UA_AddNodesResult*) UA_new(&UA_TYPES[UA_TYPES_ADDNODESRESULT]); } static UA_INLINE UA_StatusCode UA_AddNodesResult_copy(const UA_AddNodesResult *src, UA_AddNodesResult *dst) { return UA_copy(src, dst, &UA_TYPES[UA_TYPES_ADDNODESRESULT]); } static UA_INLINE void UA_AddNodesResult_deleteMembers(UA_AddNodesResult *p) { UA_deleteMembers(p, &UA_TYPES[UA_TYPES_ADDNODESRESULT]); } static UA_INLINE void UA_AddNodesResult_delete(UA_AddNodesResult *p) { UA_delete(p, &UA_TYPES[UA_TYPES_ADDNODESRESULT]); } /** * VariableAttributes * ------------------ * The attributes for a variable node. */ typedef struct { UA_UInt32 specifiedAttributes; UA_LocalizedText displayName; UA_LocalizedText description; UA_UInt32 writeMask; UA_UInt32 userWriteMask; UA_Variant value; UA_NodeId dataType; UA_Int32 valueRank; size_t arrayDimensionsSize; UA_UInt32 *arrayDimensions; UA_Byte accessLevel; UA_Byte userAccessLevel; UA_Double minimumSamplingInterval; UA_Boolean historizing; } UA_VariableAttributes; #define UA_TYPES_VARIABLEATTRIBUTES 34 static UA_INLINE void UA_VariableAttributes_init(UA_VariableAttributes *p) { memset(p, 0, sizeof(UA_VariableAttributes)); } static UA_INLINE UA_VariableAttributes * UA_VariableAttributes_new(void) { return (UA_VariableAttributes*) UA_new(&UA_TYPES[UA_TYPES_VARIABLEATTRIBUTES]); } static UA_INLINE UA_StatusCode UA_VariableAttributes_copy(const UA_VariableAttributes *src, UA_VariableAttributes *dst) { return UA_copy(src, dst, &UA_TYPES[UA_TYPES_VARIABLEATTRIBUTES]); } static UA_INLINE void UA_VariableAttributes_deleteMembers(UA_VariableAttributes *p) { UA_deleteMembers(p, &UA_TYPES[UA_TYPES_VARIABLEATTRIBUTES]); } static UA_INLINE void UA_VariableAttributes_delete(UA_VariableAttributes *p) { UA_delete(p, &UA_TYPES[UA_TYPES_VARIABLEATTRIBUTES]); } /** * NotificationMessage * ------------------- */ typedef struct { UA_UInt32 sequenceNumber; UA_DateTime publishTime; size_t notificationDataSize; UA_ExtensionObject *notificationData; } UA_NotificationMessage; #define UA_TYPES_NOTIFICATIONMESSAGE 35 static UA_INLINE void UA_NotificationMessage_init(UA_NotificationMessage *p) { memset(p, 0, sizeof(UA_NotificationMessage)); } static UA_INLINE UA_NotificationMessage * UA_NotificationMessage_new(void) { return (UA_NotificationMessage*) UA_new(&UA_TYPES[UA_TYPES_NOTIFICATIONMESSAGE]); } static UA_INLINE UA_StatusCode UA_NotificationMessage_copy(const UA_NotificationMessage *src, UA_NotificationMessage *dst) { return UA_copy(src, dst, &UA_TYPES[UA_TYPES_NOTIFICATIONMESSAGE]); } static UA_INLINE void UA_NotificationMessage_deleteMembers(UA_NotificationMessage *p) { UA_deleteMembers(p, &UA_TYPES[UA_TYPES_NOTIFICATIONMESSAGE]); } static UA_INLINE void UA_NotificationMessage_delete(UA_NotificationMessage *p) { UA_delete(p, &UA_TYPES[UA_TYPES_NOTIFICATIONMESSAGE]); } /** * NodeAttributesMask * ------------------ * The bits used to specify default attributes for a new node. */ typedef enum { UA_NODEATTRIBUTESMASK_NONE = 0, UA_NODEATTRIBUTESMASK_ACCESSLEVEL = 1, UA_NODEATTRIBUTESMASK_ARRAYDIMENSIONS = 2, UA_NODEATTRIBUTESMASK_BROWSENAME = 4, UA_NODEATTRIBUTESMASK_CONTAINSNOLOOPS = 8, UA_NODEATTRIBUTESMASK_DATATYPE = 16, UA_NODEATTRIBUTESMASK_DESCRIPTION = 32, UA_NODEATTRIBUTESMASK_DISPLAYNAME = 64, UA_NODEATTRIBUTESMASK_EVENTNOTIFIER = 128, UA_NODEATTRIBUTESMASK_EXECUTABLE = 256, UA_NODEATTRIBUTESMASK_HISTORIZING = 512, UA_NODEATTRIBUTESMASK_INVERSENAME = 1024, UA_NODEATTRIBUTESMASK_ISABSTRACT = 2048, UA_NODEATTRIBUTESMASK_MINIMUMSAMPLINGINTERVAL = 4096, UA_NODEATTRIBUTESMASK_NODECLASS = 8192, UA_NODEATTRIBUTESMASK_NODEID = 16384, UA_NODEATTRIBUTESMASK_SYMMETRIC = 32768, UA_NODEATTRIBUTESMASK_USERACCESSLEVEL = 65536, UA_NODEATTRIBUTESMASK_USEREXECUTABLE = 131072, UA_NODEATTRIBUTESMASK_USERWRITEMASK = 262144, UA_NODEATTRIBUTESMASK_VALUERANK = 524288, UA_NODEATTRIBUTESMASK_WRITEMASK = 1048576, UA_NODEATTRIBUTESMASK_VALUE = 2097152, UA_NODEATTRIBUTESMASK_ALL = 4194303, UA_NODEATTRIBUTESMASK_BASENODE = 1335396, UA_NODEATTRIBUTESMASK_OBJECT = 1335524, UA_NODEATTRIBUTESMASK_OBJECTTYPEORDATATYPE = 1337444, UA_NODEATTRIBUTESMASK_VARIABLE = 4026999, UA_NODEATTRIBUTESMASK_VARIABLETYPE = 3958902, UA_NODEATTRIBUTESMASK_METHOD = 1466724, UA_NODEATTRIBUTESMASK_REFERENCETYPE = 1371236, UA_NODEATTRIBUTESMASK_VIEW = 1335532 } UA_NodeAttributesMask; #define UA_TYPES_NODEATTRIBUTESMASK 36 static UA_INLINE void UA_NodeAttributesMask_init(UA_NodeAttributesMask *p) { memset(p, 0, sizeof(UA_NodeAttributesMask)); } static UA_INLINE UA_NodeAttributesMask * UA_NodeAttributesMask_new(void) { return (UA_NodeAttributesMask*) UA_new(&UA_TYPES[UA_TYPES_NODEATTRIBUTESMASK]); } static UA_INLINE UA_StatusCode UA_NodeAttributesMask_copy(const UA_NodeAttributesMask *src, UA_NodeAttributesMask *dst) { *dst = *src; return UA_STATUSCODE_GOOD; } static UA_INLINE void UA_NodeAttributesMask_deleteMembers(UA_NodeAttributesMask *p) { } static UA_INLINE void UA_NodeAttributesMask_delete(UA_NodeAttributesMask *p) { UA_delete(p, &UA_TYPES[UA_TYPES_NODEATTRIBUTESMASK]); } /** * MonitoringMode * -------------- */ typedef enum { UA_MONITORINGMODE_DISABLED = 0, UA_MONITORINGMODE_SAMPLING = 1, UA_MONITORINGMODE_REPORTING = 2 } UA_MonitoringMode; #define UA_TYPES_MONITORINGMODE 37 static UA_INLINE void UA_MonitoringMode_init(UA_MonitoringMode *p) { memset(p, 0, sizeof(UA_MonitoringMode)); } static UA_INLINE UA_MonitoringMode * UA_MonitoringMode_new(void) { return (UA_MonitoringMode*) UA_new(&UA_TYPES[UA_TYPES_MONITORINGMODE]); } static UA_INLINE UA_StatusCode UA_MonitoringMode_copy(const UA_MonitoringMode *src, UA_MonitoringMode *dst) { *dst = *src; return UA_STATUSCODE_GOOD; } static UA_INLINE void UA_MonitoringMode_deleteMembers(UA_MonitoringMode *p) { } static UA_INLINE void UA_MonitoringMode_delete(UA_MonitoringMode *p) { UA_delete(p, &UA_TYPES[UA_TYPES_MONITORINGMODE]); } /** * CallMethodResult * ---------------- */ typedef struct { UA_StatusCode statusCode; size_t inputArgumentResultsSize; UA_StatusCode *inputArgumentResults; size_t inputArgumentDiagnosticInfosSize; UA_DiagnosticInfo *inputArgumentDiagnosticInfos; size_t outputArgumentsSize; UA_Variant *outputArguments; } UA_CallMethodResult; #define UA_TYPES_CALLMETHODRESULT 38 static UA_INLINE void UA_CallMethodResult_init(UA_CallMethodResult *p) { memset(p, 0, sizeof(UA_CallMethodResult)); } static UA_INLINE UA_CallMethodResult * UA_CallMethodResult_new(void) { return (UA_CallMethodResult*) UA_new(&UA_TYPES[UA_TYPES_CALLMETHODRESULT]); } static UA_INLINE UA_StatusCode UA_CallMethodResult_copy(const UA_CallMethodResult *src, UA_CallMethodResult *dst) { return UA_copy(src, dst, &UA_TYPES[UA_TYPES_CALLMETHODRESULT]); } static UA_INLINE void UA_CallMethodResult_deleteMembers(UA_CallMethodResult *p) { UA_deleteMembers(p, &UA_TYPES[UA_TYPES_CALLMETHODRESULT]); } static UA_INLINE void UA_CallMethodResult_delete(UA_CallMethodResult *p) { UA_delete(p, &UA_TYPES[UA_TYPES_CALLMETHODRESULT]); } /** * ParsingResult * ------------- */ typedef struct { UA_StatusCode statusCode; size_t dataStatusCodesSize; UA_StatusCode *dataStatusCodes; size_t dataDiagnosticInfosSize; UA_DiagnosticInfo *dataDiagnosticInfos; } UA_ParsingResult; #define UA_TYPES_PARSINGRESULT 39 static UA_INLINE void UA_ParsingResult_init(UA_ParsingResult *p) { memset(p, 0, sizeof(UA_ParsingResult)); } static UA_INLINE UA_ParsingResult * UA_ParsingResult_new(void) { return (UA_ParsingResult*) UA_new(&UA_TYPES[UA_TYPES_PARSINGRESULT]); } static UA_INLINE UA_StatusCode UA_ParsingResult_copy(const UA_ParsingResult *src, UA_ParsingResult *dst) { return UA_copy(src, dst, &UA_TYPES[UA_TYPES_PARSINGRESULT]); } static UA_INLINE void UA_ParsingResult_deleteMembers(UA_ParsingResult *p) { UA_deleteMembers(p, &UA_TYPES[UA_TYPES_PARSINGRESULT]); } static UA_INLINE void UA_ParsingResult_delete(UA_ParsingResult *p) { UA_delete(p, &UA_TYPES[UA_TYPES_PARSINGRESULT]); } /** * RelativePathElement * ------------------- * An element in a relative path. */ typedef struct { UA_NodeId referenceTypeId; UA_Boolean isInverse; UA_Boolean includeSubtypes; UA_QualifiedName targetName; } UA_RelativePathElement; #define UA_TYPES_RELATIVEPATHELEMENT 40 static UA_INLINE void UA_RelativePathElement_init(UA_RelativePathElement *p) { memset(p, 0, sizeof(UA_RelativePathElement)); } static UA_INLINE UA_RelativePathElement * UA_RelativePathElement_new(void) { return (UA_RelativePathElement*) UA_new(&UA_TYPES[UA_TYPES_RELATIVEPATHELEMENT]); } static UA_INLINE UA_StatusCode UA_RelativePathElement_copy(const UA_RelativePathElement *src, UA_RelativePathElement *dst) { return UA_copy(src, dst, &UA_TYPES[UA_TYPES_RELATIVEPATHELEMENT]); } static UA_INLINE void UA_RelativePathElement_deleteMembers(UA_RelativePathElement *p) { UA_deleteMembers(p, &UA_TYPES[UA_TYPES_RELATIVEPATHELEMENT]); } static UA_INLINE void UA_RelativePathElement_delete(UA_RelativePathElement *p) { UA_delete(p, &UA_TYPES[UA_TYPES_RELATIVEPATHELEMENT]); } /** * BrowseDirection * --------------- * The directions of the references to return. */ typedef enum { UA_BROWSEDIRECTION_FORWARD = 0, UA_BROWSEDIRECTION_INVERSE = 1, UA_BROWSEDIRECTION_BOTH = 2 } UA_BrowseDirection; #define UA_TYPES_BROWSEDIRECTION 41 static UA_INLINE void UA_BrowseDirection_init(UA_BrowseDirection *p) { memset(p, 0, sizeof(UA_BrowseDirection)); } static UA_INLINE UA_BrowseDirection * UA_BrowseDirection_new(void) { return (UA_BrowseDirection*) UA_new(&UA_TYPES[UA_TYPES_BROWSEDIRECTION]); } static UA_INLINE UA_StatusCode UA_BrowseDirection_copy(const UA_BrowseDirection *src, UA_BrowseDirection *dst) { *dst = *src; return UA_STATUSCODE_GOOD; } static UA_INLINE void UA_BrowseDirection_deleteMembers(UA_BrowseDirection *p) { } static UA_INLINE void UA_BrowseDirection_delete(UA_BrowseDirection *p) { UA_delete(p, &UA_TYPES[UA_TYPES_BROWSEDIRECTION]); } /** * CallMethodRequest * ----------------- */ typedef struct { UA_NodeId objectId; UA_NodeId methodId; size_t inputArgumentsSize; UA_Variant *inputArguments; } UA_CallMethodRequest; #define UA_TYPES_CALLMETHODREQUEST 42 static UA_INLINE void UA_CallMethodRequest_init(UA_CallMethodRequest *p) { memset(p, 0, sizeof(UA_CallMethodRequest)); } static UA_INLINE UA_CallMethodRequest * UA_CallMethodRequest_new(void) { return (UA_CallMethodRequest*) UA_new(&UA_TYPES[UA_TYPES_CALLMETHODREQUEST]); } static UA_INLINE UA_StatusCode UA_CallMethodRequest_copy(const UA_CallMethodRequest *src, UA_CallMethodRequest *dst) { return UA_copy(src, dst, &UA_TYPES[UA_TYPES_CALLMETHODREQUEST]); } static UA_INLINE void UA_CallMethodRequest_deleteMembers(UA_CallMethodRequest *p) { UA_deleteMembers(p, &UA_TYPES[UA_TYPES_CALLMETHODREQUEST]); } static UA_INLINE void UA_CallMethodRequest_delete(UA_CallMethodRequest *p) { UA_delete(p, &UA_TYPES[UA_TYPES_CALLMETHODREQUEST]); } /** * ServerState * ----------- */ typedef enum { UA_SERVERSTATE_RUNNING = 0, UA_SERVERSTATE_FAILED = 1, UA_SERVERSTATE_NOCONFIGURATION = 2, UA_SERVERSTATE_SUSPENDED = 3, UA_SERVERSTATE_SHUTDOWN = 4, UA_SERVERSTATE_TEST = 5, UA_SERVERSTATE_COMMUNICATIONFAULT = 6, UA_SERVERSTATE_UNKNOWN = 7 } UA_ServerState; #define UA_TYPES_SERVERSTATE 43 static UA_INLINE void UA_ServerState_init(UA_ServerState *p) { memset(p, 0, sizeof(UA_ServerState)); } static UA_INLINE UA_ServerState * UA_ServerState_new(void) { return (UA_ServerState*) UA_new(&UA_TYPES[UA_TYPES_SERVERSTATE]); } static UA_INLINE UA_StatusCode UA_ServerState_copy(const UA_ServerState *src, UA_ServerState *dst) { *dst = *src; return UA_STATUSCODE_GOOD; } static UA_INLINE void UA_ServerState_deleteMembers(UA_ServerState *p) { } static UA_INLINE void UA_ServerState_delete(UA_ServerState *p) { UA_delete(p, &UA_TYPES[UA_TYPES_SERVERSTATE]); } /** * UnregisterNodesRequest * ---------------------- * Unregisters one or more previously registered nodes. */ typedef struct { UA_RequestHeader requestHeader; size_t nodesToUnregisterSize; UA_NodeId *nodesToUnregister; } UA_UnregisterNodesRequest; #define UA_TYPES_UNREGISTERNODESREQUEST 44 static UA_INLINE void UA_UnregisterNodesRequest_init(UA_UnregisterNodesRequest *p) { memset(p, 0, sizeof(UA_UnregisterNodesRequest)); } static UA_INLINE UA_UnregisterNodesRequest * UA_UnregisterNodesRequest_new(void) { return (UA_UnregisterNodesRequest*) UA_new(&UA_TYPES[UA_TYPES_UNREGISTERNODESREQUEST]); } static UA_INLINE UA_StatusCode UA_UnregisterNodesRequest_copy(const UA_UnregisterNodesRequest *src, UA_UnregisterNodesRequest *dst) { return UA_copy(src, dst, &UA_TYPES[UA_TYPES_UNREGISTERNODESREQUEST]); } static UA_INLINE void UA_UnregisterNodesRequest_deleteMembers(UA_UnregisterNodesRequest *p) { UA_deleteMembers(p, &UA_TYPES[UA_TYPES_UNREGISTERNODESREQUEST]); } static UA_INLINE void UA_UnregisterNodesRequest_delete(UA_UnregisterNodesRequest *p) { UA_delete(p, &UA_TYPES[UA_TYPES_UNREGISTERNODESREQUEST]); } /** * ContentFilterElementResult * -------------------------- */ typedef struct { UA_StatusCode statusCode; size_t operandStatusCodesSize; UA_StatusCode *operandStatusCodes; size_t operandDiagnosticInfosSize; UA_DiagnosticInfo *operandDiagnosticInfos; } UA_ContentFilterElementResult; #define UA_TYPES_CONTENTFILTERELEMENTRESULT 45 static UA_INLINE void UA_ContentFilterElementResult_init(UA_ContentFilterElementResult *p) { memset(p, 0, sizeof(UA_ContentFilterElementResult)); } static UA_INLINE UA_ContentFilterElementResult * UA_ContentFilterElementResult_new(void) { return (UA_ContentFilterElementResult*) UA_new(&UA_TYPES[UA_TYPES_CONTENTFILTERELEMENTRESULT]); } static UA_INLINE UA_StatusCode UA_ContentFilterElementResult_copy(const UA_ContentFilterElementResult *src, UA_ContentFilterElementResult *dst) { return UA_copy(src, dst, &UA_TYPES[UA_TYPES_CONTENTFILTERELEMENTRESULT]); } static UA_INLINE void UA_ContentFilterElementResult_deleteMembers(UA_ContentFilterElementResult *p) { UA_deleteMembers(p, &UA_TYPES[UA_TYPES_CONTENTFILTERELEMENTRESULT]); } static UA_INLINE void UA_ContentFilterElementResult_delete(UA_ContentFilterElementResult *p) { UA_delete(p, &UA_TYPES[UA_TYPES_CONTENTFILTERELEMENTRESULT]); } /** * QueryDataSet * ------------ */ typedef struct { UA_ExpandedNodeId nodeId; UA_ExpandedNodeId typeDefinitionNode; size_t valuesSize; UA_Variant *values; } UA_QueryDataSet; #define UA_TYPES_QUERYDATASET 46 static UA_INLINE void UA_QueryDataSet_init(UA_QueryDataSet *p) { memset(p, 0, sizeof(UA_QueryDataSet)); } static UA_INLINE UA_QueryDataSet * UA_QueryDataSet_new(void) { return (UA_QueryDataSet*) UA_new(&UA_TYPES[UA_TYPES_QUERYDATASET]); } static UA_INLINE UA_StatusCode UA_QueryDataSet_copy(const UA_QueryDataSet *src, UA_QueryDataSet *dst) { return UA_copy(src, dst, &UA_TYPES[UA_TYPES_QUERYDATASET]); } static UA_INLINE void UA_QueryDataSet_deleteMembers(UA_QueryDataSet *p) { UA_deleteMembers(p, &UA_TYPES[UA_TYPES_QUERYDATASET]); } static UA_INLINE void UA_QueryDataSet_delete(UA_QueryDataSet *p) { UA_delete(p, &UA_TYPES[UA_TYPES_QUERYDATASET]); } /** * SetPublishingModeRequest * ------------------------ */ typedef struct { UA_RequestHeader requestHeader; UA_Boolean publishingEnabled; size_t subscriptionIdsSize; UA_UInt32 *subscriptionIds; } UA_SetPublishingModeRequest; #define UA_TYPES_SETPUBLISHINGMODEREQUEST 47 static UA_INLINE void UA_SetPublishingModeRequest_init(UA_SetPublishingModeRequest *p) { memset(p, 0, sizeof(UA_SetPublishingModeRequest)); } static UA_INLINE UA_SetPublishingModeRequest * UA_SetPublishingModeRequest_new(void) { return (UA_SetPublishingModeRequest*) UA_new(&UA_TYPES[UA_TYPES_SETPUBLISHINGMODEREQUEST]); } static UA_INLINE UA_StatusCode UA_SetPublishingModeRequest_copy(const UA_SetPublishingModeRequest *src, UA_SetPublishingModeRequest *dst) { return UA_copy(src, dst, &UA_TYPES[UA_TYPES_SETPUBLISHINGMODEREQUEST]); } static UA_INLINE void UA_SetPublishingModeRequest_deleteMembers(UA_SetPublishingModeRequest *p) { UA_deleteMembers(p, &UA_TYPES[UA_TYPES_SETPUBLISHINGMODEREQUEST]); } static UA_INLINE void UA_SetPublishingModeRequest_delete(UA_SetPublishingModeRequest *p) { UA_delete(p, &UA_TYPES[UA_TYPES_SETPUBLISHINGMODEREQUEST]); } /** * TimestampsToReturn * ------------------ */ typedef enum { UA_TIMESTAMPSTORETURN_SOURCE = 0, UA_TIMESTAMPSTORETURN_SERVER = 1, UA_TIMESTAMPSTORETURN_BOTH = 2, UA_TIMESTAMPSTORETURN_NEITHER = 3 } UA_TimestampsToReturn; #define UA_TYPES_TIMESTAMPSTORETURN 48 static UA_INLINE void UA_TimestampsToReturn_init(UA_TimestampsToReturn *p) { memset(p, 0, sizeof(UA_TimestampsToReturn)); } static UA_INLINE UA_TimestampsToReturn * UA_TimestampsToReturn_new(void) { return (UA_TimestampsToReturn*) UA_new(&UA_TYPES[UA_TYPES_TIMESTAMPSTORETURN]); } static UA_INLINE UA_StatusCode UA_TimestampsToReturn_copy(const UA_TimestampsToReturn *src, UA_TimestampsToReturn *dst) { *dst = *src; return UA_STATUSCODE_GOOD; } static UA_INLINE void UA_TimestampsToReturn_deleteMembers(UA_TimestampsToReturn *p) { } static UA_INLINE void UA_TimestampsToReturn_delete(UA_TimestampsToReturn *p) { UA_delete(p, &UA_TYPES[UA_TYPES_TIMESTAMPSTORETURN]); } /** * CallRequest * ----------- */ typedef struct { UA_RequestHeader requestHeader; size_t methodsToCallSize; UA_CallMethodRequest *methodsToCall; } UA_CallRequest; #define UA_TYPES_CALLREQUEST 49 static UA_INLINE void UA_CallRequest_init(UA_CallRequest *p) { memset(p, 0, sizeof(UA_CallRequest)); } static UA_INLINE UA_CallRequest * UA_CallRequest_new(void) { return (UA_CallRequest*) UA_new(&UA_TYPES[UA_TYPES_CALLREQUEST]); } static UA_INLINE UA_StatusCode UA_CallRequest_copy(const UA_CallRequest *src, UA_CallRequest *dst) { return UA_copy(src, dst, &UA_TYPES[UA_TYPES_CALLREQUEST]); } static UA_INLINE void UA_CallRequest_deleteMembers(UA_CallRequest *p) { UA_deleteMembers(p, &UA_TYPES[UA_TYPES_CALLREQUEST]); } static UA_INLINE void UA_CallRequest_delete(UA_CallRequest *p) { UA_delete(p, &UA_TYPES[UA_TYPES_CALLREQUEST]); } /** * MethodAttributes * ---------------- * The attributes for a method node. */ typedef struct { UA_UInt32 specifiedAttributes; UA_LocalizedText displayName; UA_LocalizedText description; UA_UInt32 writeMask; UA_UInt32 userWriteMask; UA_Boolean executable; UA_Boolean userExecutable; } UA_MethodAttributes; #define UA_TYPES_METHODATTRIBUTES 50 static UA_INLINE void UA_MethodAttributes_init(UA_MethodAttributes *p) { memset(p, 0, sizeof(UA_MethodAttributes)); } static UA_INLINE UA_MethodAttributes * UA_MethodAttributes_new(void) { return (UA_MethodAttributes*) UA_new(&UA_TYPES[UA_TYPES_METHODATTRIBUTES]); } static UA_INLINE UA_StatusCode UA_MethodAttributes_copy(const UA_MethodAttributes *src, UA_MethodAttributes *dst) { return UA_copy(src, dst, &UA_TYPES[UA_TYPES_METHODATTRIBUTES]); } static UA_INLINE void UA_MethodAttributes_deleteMembers(UA_MethodAttributes *p) { UA_deleteMembers(p, &UA_TYPES[UA_TYPES_METHODATTRIBUTES]); } static UA_INLINE void UA_MethodAttributes_delete(UA_MethodAttributes *p) { UA_delete(p, &UA_TYPES[UA_TYPES_METHODATTRIBUTES]); } /** * DeleteReferencesItem * -------------------- * A request to delete a node from the server address space. */ typedef struct { UA_NodeId sourceNodeId; UA_NodeId referenceTypeId; UA_Boolean isForward; UA_ExpandedNodeId targetNodeId; UA_Boolean deleteBidirectional; } UA_DeleteReferencesItem; #define UA_TYPES_DELETEREFERENCESITEM 51 static UA_INLINE void UA_DeleteReferencesItem_init(UA_DeleteReferencesItem *p) { memset(p, 0, sizeof(UA_DeleteReferencesItem)); } static UA_INLINE UA_DeleteReferencesItem * UA_DeleteReferencesItem_new(void) { return (UA_DeleteReferencesItem*) UA_new(&UA_TYPES[UA_TYPES_DELETEREFERENCESITEM]); } static UA_INLINE UA_StatusCode UA_DeleteReferencesItem_copy(const UA_DeleteReferencesItem *src, UA_DeleteReferencesItem *dst) { return UA_copy(src, dst, &UA_TYPES[UA_TYPES_DELETEREFERENCESITEM]); } static UA_INLINE void UA_DeleteReferencesItem_deleteMembers(UA_DeleteReferencesItem *p) { UA_deleteMembers(p, &UA_TYPES[UA_TYPES_DELETEREFERENCESITEM]); } static UA_INLINE void UA_DeleteReferencesItem_delete(UA_DeleteReferencesItem *p) { UA_delete(p, &UA_TYPES[UA_TYPES_DELETEREFERENCESITEM]); } /** * WriteValue * ---------- */ typedef struct { UA_NodeId nodeId; UA_UInt32 attributeId; UA_String indexRange; UA_DataValue value; } UA_WriteValue; #define UA_TYPES_WRITEVALUE 52 static UA_INLINE void UA_WriteValue_init(UA_WriteValue *p) { memset(p, 0, sizeof(UA_WriteValue)); } static UA_INLINE UA_WriteValue * UA_WriteValue_new(void) { return (UA_WriteValue*) UA_new(&UA_TYPES[UA_TYPES_WRITEVALUE]); } static UA_INLINE UA_StatusCode UA_WriteValue_copy(const UA_WriteValue *src, UA_WriteValue *dst) { return UA_copy(src, dst, &UA_TYPES[UA_TYPES_WRITEVALUE]); } static UA_INLINE void UA_WriteValue_deleteMembers(UA_WriteValue *p) { UA_deleteMembers(p, &UA_TYPES[UA_TYPES_WRITEVALUE]); } static UA_INLINE void UA_WriteValue_delete(UA_WriteValue *p) { UA_delete(p, &UA_TYPES[UA_TYPES_WRITEVALUE]); } /** * MonitoredItemCreateResult * ------------------------- */ typedef struct { UA_StatusCode statusCode; UA_UInt32 monitoredItemId; UA_Double revisedSamplingInterval; UA_UInt32 revisedQueueSize; UA_ExtensionObject filterResult; } UA_MonitoredItemCreateResult; #define UA_TYPES_MONITOREDITEMCREATERESULT 53 static UA_INLINE void UA_MonitoredItemCreateResult_init(UA_MonitoredItemCreateResult *p) { memset(p, 0, sizeof(UA_MonitoredItemCreateResult)); } static UA_INLINE UA_MonitoredItemCreateResult * UA_MonitoredItemCreateResult_new(void) { return (UA_MonitoredItemCreateResult*) UA_new(&UA_TYPES[UA_TYPES_MONITOREDITEMCREATERESULT]); } static UA_INLINE UA_StatusCode UA_MonitoredItemCreateResult_copy(const UA_MonitoredItemCreateResult *src, UA_MonitoredItemCreateResult *dst) { return UA_copy(src, dst, &UA_TYPES[UA_TYPES_MONITOREDITEMCREATERESULT]); } static UA_INLINE void UA_MonitoredItemCreateResult_deleteMembers(UA_MonitoredItemCreateResult *p) { UA_deleteMembers(p, &UA_TYPES[UA_TYPES_MONITOREDITEMCREATERESULT]); } static UA_INLINE void UA_MonitoredItemCreateResult_delete(UA_MonitoredItemCreateResult *p) { UA_delete(p, &UA_TYPES[UA_TYPES_MONITOREDITEMCREATERESULT]); } /** * MessageSecurityMode * ------------------- * The type of security to use on a message. */ typedef enum { UA_MESSAGESECURITYMODE_INVALID = 0, UA_MESSAGESECURITYMODE_NONE = 1, UA_MESSAGESECURITYMODE_SIGN = 2, UA_MESSAGESECURITYMODE_SIGNANDENCRYPT = 3 } UA_MessageSecurityMode; #define UA_TYPES_MESSAGESECURITYMODE 54 static UA_INLINE void UA_MessageSecurityMode_init(UA_MessageSecurityMode *p) { memset(p, 0, sizeof(UA_MessageSecurityMode)); } static UA_INLINE UA_MessageSecurityMode * UA_MessageSecurityMode_new(void) { return (UA_MessageSecurityMode*) UA_new(&UA_TYPES[UA_TYPES_MESSAGESECURITYMODE]); } static UA_INLINE UA_StatusCode UA_MessageSecurityMode_copy(const UA_MessageSecurityMode *src, UA_MessageSecurityMode *dst) { *dst = *src; return UA_STATUSCODE_GOOD; } static UA_INLINE void UA_MessageSecurityMode_deleteMembers(UA_MessageSecurityMode *p) { } static UA_INLINE void UA_MessageSecurityMode_delete(UA_MessageSecurityMode *p) { UA_delete(p, &UA_TYPES[UA_TYPES_MESSAGESECURITYMODE]); } /** * MonitoringParameters * -------------------- */ typedef struct { UA_UInt32 clientHandle; UA_Double samplingInterval; UA_ExtensionObject filter; UA_UInt32 queueSize; UA_Boolean discardOldest; } UA_MonitoringParameters; #define UA_TYPES_MONITORINGPARAMETERS 55 static UA_INLINE void UA_MonitoringParameters_init(UA_MonitoringParameters *p) { memset(p, 0, sizeof(UA_MonitoringParameters)); } static UA_INLINE UA_MonitoringParameters * UA_MonitoringParameters_new(void) { return (UA_MonitoringParameters*) UA_new(&UA_TYPES[UA_TYPES_MONITORINGPARAMETERS]); } static UA_INLINE UA_StatusCode UA_MonitoringParameters_copy(const UA_MonitoringParameters *src, UA_MonitoringParameters *dst) { return UA_copy(src, dst, &UA_TYPES[UA_TYPES_MONITORINGPARAMETERS]); } static UA_INLINE void UA_MonitoringParameters_deleteMembers(UA_MonitoringParameters *p) { UA_deleteMembers(p, &UA_TYPES[UA_TYPES_MONITORINGPARAMETERS]); } static UA_INLINE void UA_MonitoringParameters_delete(UA_MonitoringParameters *p) { UA_delete(p, &UA_TYPES[UA_TYPES_MONITORINGPARAMETERS]); } /** * SignatureData * ------------- * A digital signature. */ typedef struct { UA_String algorithm; UA_ByteString signature; } UA_SignatureData; #define UA_TYPES_SIGNATUREDATA 56 static UA_INLINE void UA_SignatureData_init(UA_SignatureData *p) { memset(p, 0, sizeof(UA_SignatureData)); } static UA_INLINE UA_SignatureData * UA_SignatureData_new(void) { return (UA_SignatureData*) UA_new(&UA_TYPES[UA_TYPES_SIGNATUREDATA]); } static UA_INLINE UA_StatusCode UA_SignatureData_copy(const UA_SignatureData *src, UA_SignatureData *dst) { return UA_copy(src, dst, &UA_TYPES[UA_TYPES_SIGNATUREDATA]); } static UA_INLINE void UA_SignatureData_deleteMembers(UA_SignatureData *p) { UA_deleteMembers(p, &UA_TYPES[UA_TYPES_SIGNATUREDATA]); } static UA_INLINE void UA_SignatureData_delete(UA_SignatureData *p) { UA_delete(p, &UA_TYPES[UA_TYPES_SIGNATUREDATA]); } /** * ReferenceNode * ------------- * Specifies a reference which belongs to a node. */ typedef struct { UA_NodeId referenceTypeId; UA_Boolean isInverse; UA_ExpandedNodeId targetId; } UA_ReferenceNode; #define UA_TYPES_REFERENCENODE 57 static UA_INLINE void UA_ReferenceNode_init(UA_ReferenceNode *p) { memset(p, 0, sizeof(UA_ReferenceNode)); } static UA_INLINE UA_ReferenceNode * UA_ReferenceNode_new(void) { return (UA_ReferenceNode*) UA_new(&UA_TYPES[UA_TYPES_REFERENCENODE]); } static UA_INLINE UA_StatusCode UA_ReferenceNode_copy(const UA_ReferenceNode *src, UA_ReferenceNode *dst) { return UA_copy(src, dst, &UA_TYPES[UA_TYPES_REFERENCENODE]); } static UA_INLINE void UA_ReferenceNode_deleteMembers(UA_ReferenceNode *p) { UA_deleteMembers(p, &UA_TYPES[UA_TYPES_REFERENCENODE]); } static UA_INLINE void UA_ReferenceNode_delete(UA_ReferenceNode *p) { UA_delete(p, &UA_TYPES[UA_TYPES_REFERENCENODE]); } /** * Argument * -------- * An argument for a method. */ typedef struct { UA_String name; UA_NodeId dataType; UA_Int32 valueRank; size_t arrayDimensionsSize; UA_UInt32 *arrayDimensions; UA_LocalizedText description; } UA_Argument; #define UA_TYPES_ARGUMENT 58 static UA_INLINE void UA_Argument_init(UA_Argument *p) { memset(p, 0, sizeof(UA_Argument)); } static UA_INLINE UA_Argument * UA_Argument_new(void) { return (UA_Argument*) UA_new(&UA_TYPES[UA_TYPES_ARGUMENT]); } static UA_INLINE UA_StatusCode UA_Argument_copy(const UA_Argument *src, UA_Argument *dst) { return UA_copy(src, dst, &UA_TYPES[UA_TYPES_ARGUMENT]); } static UA_INLINE void UA_Argument_deleteMembers(UA_Argument *p) { UA_deleteMembers(p, &UA_TYPES[UA_TYPES_ARGUMENT]); } static UA_INLINE void UA_Argument_delete(UA_Argument *p) { UA_delete(p, &UA_TYPES[UA_TYPES_ARGUMENT]); } /** * UserIdentityToken * ----------------- * A base type for a user identity token. */ typedef struct { UA_String policyId; } UA_UserIdentityToken; #define UA_TYPES_USERIDENTITYTOKEN 59 static UA_INLINE void UA_UserIdentityToken_init(UA_UserIdentityToken *p) { memset(p, 0, sizeof(UA_UserIdentityToken)); } static UA_INLINE UA_UserIdentityToken * UA_UserIdentityToken_new(void) { return (UA_UserIdentityToken*) UA_new(&UA_TYPES[UA_TYPES_USERIDENTITYTOKEN]); } static UA_INLINE UA_StatusCode UA_UserIdentityToken_copy(const UA_UserIdentityToken *src, UA_UserIdentityToken *dst) { return UA_copy(src, dst, &UA_TYPES[UA_TYPES_USERIDENTITYTOKEN]); } static UA_INLINE void UA_UserIdentityToken_deleteMembers(UA_UserIdentityToken *p) { UA_deleteMembers(p, &UA_TYPES[UA_TYPES_USERIDENTITYTOKEN]); } static UA_INLINE void UA_UserIdentityToken_delete(UA_UserIdentityToken *p) { UA_delete(p, &UA_TYPES[UA_TYPES_USERIDENTITYTOKEN]); } /** * ObjectTypeAttributes * -------------------- * The attributes for an object type node. */ typedef struct { UA_UInt32 specifiedAttributes; UA_LocalizedText displayName; UA_LocalizedText description; UA_UInt32 writeMask; UA_UInt32 userWriteMask; UA_Boolean isAbstract; } UA_ObjectTypeAttributes; #define UA_TYPES_OBJECTTYPEATTRIBUTES 60 static UA_INLINE void UA_ObjectTypeAttributes_init(UA_ObjectTypeAttributes *p) { memset(p, 0, sizeof(UA_ObjectTypeAttributes)); } static UA_INLINE UA_ObjectTypeAttributes * UA_ObjectTypeAttributes_new(void) { return (UA_ObjectTypeAttributes*) UA_new(&UA_TYPES[UA_TYPES_OBJECTTYPEATTRIBUTES]); } static UA_INLINE UA_StatusCode UA_ObjectTypeAttributes_copy(const UA_ObjectTypeAttributes *src, UA_ObjectTypeAttributes *dst) { return UA_copy(src, dst, &UA_TYPES[UA_TYPES_OBJECTTYPEATTRIBUTES]); } static UA_INLINE void UA_ObjectTypeAttributes_deleteMembers(UA_ObjectTypeAttributes *p) { UA_deleteMembers(p, &UA_TYPES[UA_TYPES_OBJECTTYPEATTRIBUTES]); } static UA_INLINE void UA_ObjectTypeAttributes_delete(UA_ObjectTypeAttributes *p) { UA_delete(p, &UA_TYPES[UA_TYPES_OBJECTTYPEATTRIBUTES]); } /** * SecurityTokenRequestType * ------------------------ * Indicates whether a token if being created or renewed. */ typedef enum { UA_SECURITYTOKENREQUESTTYPE_ISSUE = 0, UA_SECURITYTOKENREQUESTTYPE_RENEW = 1 } UA_SecurityTokenRequestType; #define UA_TYPES_SECURITYTOKENREQUESTTYPE 61 static UA_INLINE void UA_SecurityTokenRequestType_init(UA_SecurityTokenRequestType *p) { memset(p, 0, sizeof(UA_SecurityTokenRequestType)); } static UA_INLINE UA_SecurityTokenRequestType * UA_SecurityTokenRequestType_new(void) { return (UA_SecurityTokenRequestType*) UA_new(&UA_TYPES[UA_TYPES_SECURITYTOKENREQUESTTYPE]); } static UA_INLINE UA_StatusCode UA_SecurityTokenRequestType_copy(const UA_SecurityTokenRequestType *src, UA_SecurityTokenRequestType *dst) { *dst = *src; return UA_STATUSCODE_GOOD; } static UA_INLINE void UA_SecurityTokenRequestType_deleteMembers(UA_SecurityTokenRequestType *p) { } static UA_INLINE void UA_SecurityTokenRequestType_delete(UA_SecurityTokenRequestType *p) { UA_delete(p, &UA_TYPES[UA_TYPES_SECURITYTOKENREQUESTTYPE]); } /** * BuildInfo * --------- */ typedef struct { UA_String productUri; UA_String manufacturerName; UA_String productName; UA_String softwareVersion; UA_String buildNumber; UA_DateTime buildDate; } UA_BuildInfo; #define UA_TYPES_BUILDINFO 62 static UA_INLINE void UA_BuildInfo_init(UA_BuildInfo *p) { memset(p, 0, sizeof(UA_BuildInfo)); } static UA_INLINE UA_BuildInfo * UA_BuildInfo_new(void) { return (UA_BuildInfo*) UA_new(&UA_TYPES[UA_TYPES_BUILDINFO]); } static UA_INLINE UA_StatusCode UA_BuildInfo_copy(const UA_BuildInfo *src, UA_BuildInfo *dst) { return UA_copy(src, dst, &UA_TYPES[UA_TYPES_BUILDINFO]); } static UA_INLINE void UA_BuildInfo_deleteMembers(UA_BuildInfo *p) { UA_deleteMembers(p, &UA_TYPES[UA_TYPES_BUILDINFO]); } static UA_INLINE void UA_BuildInfo_delete(UA_BuildInfo *p) { UA_delete(p, &UA_TYPES[UA_TYPES_BUILDINFO]); } /** * NodeClass * --------- * A mask specifying the class of the node. */ typedef enum { UA_NODECLASS_UNSPECIFIED = 0, UA_NODECLASS_OBJECT = 1, UA_NODECLASS_VARIABLE = 2, UA_NODECLASS_METHOD = 4, UA_NODECLASS_OBJECTTYPE = 8, UA_NODECLASS_VARIABLETYPE = 16, UA_NODECLASS_REFERENCETYPE = 32, UA_NODECLASS_DATATYPE = 64, UA_NODECLASS_VIEW = 128 } UA_NodeClass; #define UA_TYPES_NODECLASS 63 static UA_INLINE void UA_NodeClass_init(UA_NodeClass *p) { memset(p, 0, sizeof(UA_NodeClass)); } static UA_INLINE UA_NodeClass * UA_NodeClass_new(void) { return (UA_NodeClass*) UA_new(&UA_TYPES[UA_TYPES_NODECLASS]); } static UA_INLINE UA_StatusCode UA_NodeClass_copy(const UA_NodeClass *src, UA_NodeClass *dst) { *dst = *src; return UA_STATUSCODE_GOOD; } static UA_INLINE void UA_NodeClass_deleteMembers(UA_NodeClass *p) { } static UA_INLINE void UA_NodeClass_delete(UA_NodeClass *p) { UA_delete(p, &UA_TYPES[UA_TYPES_NODECLASS]); } /** * ChannelSecurityToken * -------------------- * The token that identifies a set of keys for an active secure channel. */ typedef struct { UA_UInt32 channelId; UA_UInt32 tokenId; UA_DateTime createdAt; UA_UInt32 revisedLifetime; } UA_ChannelSecurityToken; #define UA_TYPES_CHANNELSECURITYTOKEN 64 static UA_INLINE void UA_ChannelSecurityToken_init(UA_ChannelSecurityToken *p) { memset(p, 0, sizeof(UA_ChannelSecurityToken)); } static UA_INLINE UA_ChannelSecurityToken * UA_ChannelSecurityToken_new(void) { return (UA_ChannelSecurityToken*) UA_new(&UA_TYPES[UA_TYPES_CHANNELSECURITYTOKEN]); } static UA_INLINE UA_StatusCode UA_ChannelSecurityToken_copy(const UA_ChannelSecurityToken *src, UA_ChannelSecurityToken *dst) { *dst = *src; return UA_STATUSCODE_GOOD; } static UA_INLINE void UA_ChannelSecurityToken_deleteMembers(UA_ChannelSecurityToken *p) { } static UA_INLINE void UA_ChannelSecurityToken_delete(UA_ChannelSecurityToken *p) { UA_delete(p, &UA_TYPES[UA_TYPES_CHANNELSECURITYTOKEN]); } /** * MonitoredItemNotification * ------------------------- */ typedef struct { UA_UInt32 clientHandle; UA_DataValue value; } UA_MonitoredItemNotification; #define UA_TYPES_MONITOREDITEMNOTIFICATION 65 static UA_INLINE void UA_MonitoredItemNotification_init(UA_MonitoredItemNotification *p) { memset(p, 0, sizeof(UA_MonitoredItemNotification)); } static UA_INLINE UA_MonitoredItemNotification * UA_MonitoredItemNotification_new(void) { return (UA_MonitoredItemNotification*) UA_new(&UA_TYPES[UA_TYPES_MONITOREDITEMNOTIFICATION]); } static UA_INLINE UA_StatusCode UA_MonitoredItemNotification_copy(const UA_MonitoredItemNotification *src, UA_MonitoredItemNotification *dst) { return UA_copy(src, dst, &UA_TYPES[UA_TYPES_MONITOREDITEMNOTIFICATION]); } static UA_INLINE void UA_MonitoredItemNotification_deleteMembers(UA_MonitoredItemNotification *p) { UA_deleteMembers(p, &UA_TYPES[UA_TYPES_MONITOREDITEMNOTIFICATION]); } static UA_INLINE void UA_MonitoredItemNotification_delete(UA_MonitoredItemNotification *p) { UA_delete(p, &UA_TYPES[UA_TYPES_MONITOREDITEMNOTIFICATION]); } /** * DeleteNodesItem * --------------- * A request to delete a node to the server address space. */ typedef struct { UA_NodeId nodeId; UA_Boolean deleteTargetReferences; } UA_DeleteNodesItem; #define UA_TYPES_DELETENODESITEM 66 static UA_INLINE void UA_DeleteNodesItem_init(UA_DeleteNodesItem *p) { memset(p, 0, sizeof(UA_DeleteNodesItem)); } static UA_INLINE UA_DeleteNodesItem * UA_DeleteNodesItem_new(void) { return (UA_DeleteNodesItem*) UA_new(&UA_TYPES[UA_TYPES_DELETENODESITEM]); } static UA_INLINE UA_StatusCode UA_DeleteNodesItem_copy(const UA_DeleteNodesItem *src, UA_DeleteNodesItem *dst) { return UA_copy(src, dst, &UA_TYPES[UA_TYPES_DELETENODESITEM]); } static UA_INLINE void UA_DeleteNodesItem_deleteMembers(UA_DeleteNodesItem *p) { UA_deleteMembers(p, &UA_TYPES[UA_TYPES_DELETENODESITEM]); } static UA_INLINE void UA_DeleteNodesItem_delete(UA_DeleteNodesItem *p) { UA_delete(p, &UA_TYPES[UA_TYPES_DELETENODESITEM]); } /** * SubscriptionAcknowledgement * --------------------------- */ typedef struct { UA_UInt32 subscriptionId; UA_UInt32 sequenceNumber; } UA_SubscriptionAcknowledgement; #define UA_TYPES_SUBSCRIPTIONACKNOWLEDGEMENT 67 static UA_INLINE void UA_SubscriptionAcknowledgement_init(UA_SubscriptionAcknowledgement *p) { memset(p, 0, sizeof(UA_SubscriptionAcknowledgement)); } static UA_INLINE UA_SubscriptionAcknowledgement * UA_SubscriptionAcknowledgement_new(void) { return (UA_SubscriptionAcknowledgement*) UA_new(&UA_TYPES[UA_TYPES_SUBSCRIPTIONACKNOWLEDGEMENT]); } static UA_INLINE UA_StatusCode UA_SubscriptionAcknowledgement_copy(const UA_SubscriptionAcknowledgement *src, UA_SubscriptionAcknowledgement *dst) { *dst = *src; return UA_STATUSCODE_GOOD; } static UA_INLINE void UA_SubscriptionAcknowledgement_deleteMembers(UA_SubscriptionAcknowledgement *p) { } static UA_INLINE void UA_SubscriptionAcknowledgement_delete(UA_SubscriptionAcknowledgement *p) { UA_delete(p, &UA_TYPES[UA_TYPES_SUBSCRIPTIONACKNOWLEDGEMENT]); } /** * ReadValueId * ----------- */ typedef struct { UA_NodeId nodeId; UA_UInt32 attributeId; UA_String indexRange; UA_QualifiedName dataEncoding; } UA_ReadValueId; #define UA_TYPES_READVALUEID 68 static UA_INLINE void UA_ReadValueId_init(UA_ReadValueId *p) { memset(p, 0, sizeof(UA_ReadValueId)); } static UA_INLINE UA_ReadValueId * UA_ReadValueId_new(void) { return (UA_ReadValueId*) UA_new(&UA_TYPES[UA_TYPES_READVALUEID]); } static UA_INLINE UA_StatusCode UA_ReadValueId_copy(const UA_ReadValueId *src, UA_ReadValueId *dst) { return UA_copy(src, dst, &UA_TYPES[UA_TYPES_READVALUEID]); } static UA_INLINE void UA_ReadValueId_deleteMembers(UA_ReadValueId *p) { UA_deleteMembers(p, &UA_TYPES[UA_TYPES_READVALUEID]); } static UA_INLINE void UA_ReadValueId_delete(UA_ReadValueId *p) { UA_delete(p, &UA_TYPES[UA_TYPES_READVALUEID]); } /** * AnonymousIdentityToken * ---------------------- * A token representing an anonymous user. */ typedef struct { UA_String policyId; } UA_AnonymousIdentityToken; #define UA_TYPES_ANONYMOUSIDENTITYTOKEN 69 static UA_INLINE void UA_AnonymousIdentityToken_init(UA_AnonymousIdentityToken *p) { memset(p, 0, sizeof(UA_AnonymousIdentityToken)); } static UA_INLINE UA_AnonymousIdentityToken * UA_AnonymousIdentityToken_new(void) { return (UA_AnonymousIdentityToken*) UA_new(&UA_TYPES[UA_TYPES_ANONYMOUSIDENTITYTOKEN]); } static UA_INLINE UA_StatusCode UA_AnonymousIdentityToken_copy(const UA_AnonymousIdentityToken *src, UA_AnonymousIdentityToken *dst) { return UA_copy(src, dst, &UA_TYPES[UA_TYPES_ANONYMOUSIDENTITYTOKEN]); } static UA_INLINE void UA_AnonymousIdentityToken_deleteMembers(UA_AnonymousIdentityToken *p) { UA_deleteMembers(p, &UA_TYPES[UA_TYPES_ANONYMOUSIDENTITYTOKEN]); } static UA_INLINE void UA_AnonymousIdentityToken_delete(UA_AnonymousIdentityToken *p) { UA_delete(p, &UA_TYPES[UA_TYPES_ANONYMOUSIDENTITYTOKEN]); } /** * DataTypeAttributes * ------------------ * The attributes for a data type node. */ typedef struct { UA_UInt32 specifiedAttributes; UA_LocalizedText displayName; UA_LocalizedText description; UA_UInt32 writeMask; UA_UInt32 userWriteMask; UA_Boolean isAbstract; } UA_DataTypeAttributes; #define UA_TYPES_DATATYPEATTRIBUTES 70 static UA_INLINE void UA_DataTypeAttributes_init(UA_DataTypeAttributes *p) { memset(p, 0, sizeof(UA_DataTypeAttributes)); } static UA_INLINE UA_DataTypeAttributes * UA_DataTypeAttributes_new(void) { return (UA_DataTypeAttributes*) UA_new(&UA_TYPES[UA_TYPES_DATATYPEATTRIBUTES]); } static UA_INLINE UA_StatusCode UA_DataTypeAttributes_copy(const UA_DataTypeAttributes *src, UA_DataTypeAttributes *dst) { return UA_copy(src, dst, &UA_TYPES[UA_TYPES_DATATYPEATTRIBUTES]); } static UA_INLINE void UA_DataTypeAttributes_deleteMembers(UA_DataTypeAttributes *p) { UA_deleteMembers(p, &UA_TYPES[UA_TYPES_DATATYPEATTRIBUTES]); } static UA_INLINE void UA_DataTypeAttributes_delete(UA_DataTypeAttributes *p) { UA_delete(p, &UA_TYPES[UA_TYPES_DATATYPEATTRIBUTES]); } /** * ResponseHeader * -------------- * The header passed with every server response. */ typedef struct { UA_DateTime timestamp; UA_UInt32 requestHandle; UA_StatusCode serviceResult; UA_DiagnosticInfo serviceDiagnostics; size_t stringTableSize; UA_String *stringTable; UA_ExtensionObject additionalHeader; } UA_ResponseHeader; #define UA_TYPES_RESPONSEHEADER 71 static UA_INLINE void UA_ResponseHeader_init(UA_ResponseHeader *p) { memset(p, 0, sizeof(UA_ResponseHeader)); } static UA_INLINE UA_ResponseHeader * UA_ResponseHeader_new(void) { return (UA_ResponseHeader*) UA_new(&UA_TYPES[UA_TYPES_RESPONSEHEADER]); } static UA_INLINE UA_StatusCode UA_ResponseHeader_copy(const UA_ResponseHeader *src, UA_ResponseHeader *dst) { return UA_copy(src, dst, &UA_TYPES[UA_TYPES_RESPONSEHEADER]); } static UA_INLINE void UA_ResponseHeader_deleteMembers(UA_ResponseHeader *p) { UA_deleteMembers(p, &UA_TYPES[UA_TYPES_RESPONSEHEADER]); } static UA_INLINE void UA_ResponseHeader_delete(UA_ResponseHeader *p) { UA_delete(p, &UA_TYPES[UA_TYPES_RESPONSEHEADER]); } /** * DeleteSubscriptionsRequest * -------------------------- */ typedef struct { UA_RequestHeader requestHeader; size_t subscriptionIdsSize; UA_UInt32 *subscriptionIds; } UA_DeleteSubscriptionsRequest; #define UA_TYPES_DELETESUBSCRIPTIONSREQUEST 72 static UA_INLINE void UA_DeleteSubscriptionsRequest_init(UA_DeleteSubscriptionsRequest *p) { memset(p, 0, sizeof(UA_DeleteSubscriptionsRequest)); } static UA_INLINE UA_DeleteSubscriptionsRequest * UA_DeleteSubscriptionsRequest_new(void) { return (UA_DeleteSubscriptionsRequest*) UA_new(&UA_TYPES[UA_TYPES_DELETESUBSCRIPTIONSREQUEST]); } static UA_INLINE UA_StatusCode UA_DeleteSubscriptionsRequest_copy(const UA_DeleteSubscriptionsRequest *src, UA_DeleteSubscriptionsRequest *dst) { return UA_copy(src, dst, &UA_TYPES[UA_TYPES_DELETESUBSCRIPTIONSREQUEST]); } static UA_INLINE void UA_DeleteSubscriptionsRequest_deleteMembers(UA_DeleteSubscriptionsRequest *p) { UA_deleteMembers(p, &UA_TYPES[UA_TYPES_DELETESUBSCRIPTIONSREQUEST]); } static UA_INLINE void UA_DeleteSubscriptionsRequest_delete(UA_DeleteSubscriptionsRequest *p) { UA_delete(p, &UA_TYPES[UA_TYPES_DELETESUBSCRIPTIONSREQUEST]); } /** * DataChangeNotification * ---------------------- */ typedef struct { size_t monitoredItemsSize; UA_MonitoredItemNotification *monitoredItems; size_t diagnosticInfosSize; UA_DiagnosticInfo *diagnosticInfos; } UA_DataChangeNotification; #define UA_TYPES_DATACHANGENOTIFICATION 73 static UA_INLINE void UA_DataChangeNotification_init(UA_DataChangeNotification *p) { memset(p, 0, sizeof(UA_DataChangeNotification)); } static UA_INLINE UA_DataChangeNotification * UA_DataChangeNotification_new(void) { return (UA_DataChangeNotification*) UA_new(&UA_TYPES[UA_TYPES_DATACHANGENOTIFICATION]); } static UA_INLINE UA_StatusCode UA_DataChangeNotification_copy(const UA_DataChangeNotification *src, UA_DataChangeNotification *dst) { return UA_copy(src, dst, &UA_TYPES[UA_TYPES_DATACHANGENOTIFICATION]); } static UA_INLINE void UA_DataChangeNotification_deleteMembers(UA_DataChangeNotification *p) { UA_deleteMembers(p, &UA_TYPES[UA_TYPES_DATACHANGENOTIFICATION]); } static UA_INLINE void UA_DataChangeNotification_delete(UA_DataChangeNotification *p) { UA_delete(p, &UA_TYPES[UA_TYPES_DATACHANGENOTIFICATION]); } /** * DeleteMonitoredItemsResponse * ---------------------------- */ typedef struct { UA_ResponseHeader responseHeader; size_t resultsSize; UA_StatusCode *results; size_t diagnosticInfosSize; UA_DiagnosticInfo *diagnosticInfos; } UA_DeleteMonitoredItemsResponse; #define UA_TYPES_DELETEMONITOREDITEMSRESPONSE 74 static UA_INLINE void UA_DeleteMonitoredItemsResponse_init(UA_DeleteMonitoredItemsResponse *p) { memset(p, 0, sizeof(UA_DeleteMonitoredItemsResponse)); } static UA_INLINE UA_DeleteMonitoredItemsResponse * UA_DeleteMonitoredItemsResponse_new(void) { return (UA_DeleteMonitoredItemsResponse*) UA_new(&UA_TYPES[UA_TYPES_DELETEMONITOREDITEMSRESPONSE]); } static UA_INLINE UA_StatusCode UA_DeleteMonitoredItemsResponse_copy(const UA_DeleteMonitoredItemsResponse *src, UA_DeleteMonitoredItemsResponse *dst) { return UA_copy(src, dst, &UA_TYPES[UA_TYPES_DELETEMONITOREDITEMSRESPONSE]); } static UA_INLINE void UA_DeleteMonitoredItemsResponse_deleteMembers(UA_DeleteMonitoredItemsResponse *p) { UA_deleteMembers(p, &UA_TYPES[UA_TYPES_DELETEMONITOREDITEMSRESPONSE]); } static UA_INLINE void UA_DeleteMonitoredItemsResponse_delete(UA_DeleteMonitoredItemsResponse *p) { UA_delete(p, &UA_TYPES[UA_TYPES_DELETEMONITOREDITEMSRESPONSE]); } /** * RelativePath * ------------ * A relative path constructed from reference types and browse names. */ typedef struct { size_t elementsSize; UA_RelativePathElement *elements; } UA_RelativePath; #define UA_TYPES_RELATIVEPATH 75 static UA_INLINE void UA_RelativePath_init(UA_RelativePath *p) { memset(p, 0, sizeof(UA_RelativePath)); } static UA_INLINE UA_RelativePath * UA_RelativePath_new(void) { return (UA_RelativePath*) UA_new(&UA_TYPES[UA_TYPES_RELATIVEPATH]); } static UA_INLINE UA_StatusCode UA_RelativePath_copy(const UA_RelativePath *src, UA_RelativePath *dst) { return UA_copy(src, dst, &UA_TYPES[UA_TYPES_RELATIVEPATH]); } static UA_INLINE void UA_RelativePath_deleteMembers(UA_RelativePath *p) { UA_deleteMembers(p, &UA_TYPES[UA_TYPES_RELATIVEPATH]); } static UA_INLINE void UA_RelativePath_delete(UA_RelativePath *p) { UA_delete(p, &UA_TYPES[UA_TYPES_RELATIVEPATH]); } /** * RegisterNodesRequest * -------------------- * Registers one or more nodes for repeated use within a session. */ typedef struct { UA_RequestHeader requestHeader; size_t nodesToRegisterSize; UA_NodeId *nodesToRegister; } UA_RegisterNodesRequest; #define UA_TYPES_REGISTERNODESREQUEST 76 static UA_INLINE void UA_RegisterNodesRequest_init(UA_RegisterNodesRequest *p) { memset(p, 0, sizeof(UA_RegisterNodesRequest)); } static UA_INLINE UA_RegisterNodesRequest * UA_RegisterNodesRequest_new(void) { return (UA_RegisterNodesRequest*) UA_new(&UA_TYPES[UA_TYPES_REGISTERNODESREQUEST]); } static UA_INLINE UA_StatusCode UA_RegisterNodesRequest_copy(const UA_RegisterNodesRequest *src, UA_RegisterNodesRequest *dst) { return UA_copy(src, dst, &UA_TYPES[UA_TYPES_REGISTERNODESREQUEST]); } static UA_INLINE void UA_RegisterNodesRequest_deleteMembers(UA_RegisterNodesRequest *p) { UA_deleteMembers(p, &UA_TYPES[UA_TYPES_REGISTERNODESREQUEST]); } static UA_INLINE void UA_RegisterNodesRequest_delete(UA_RegisterNodesRequest *p) { UA_delete(p, &UA_TYPES[UA_TYPES_REGISTERNODESREQUEST]); } /** * DeleteNodesRequest * ------------------ * Delete one or more nodes from the server address space. */ typedef struct { UA_RequestHeader requestHeader; size_t nodesToDeleteSize; UA_DeleteNodesItem *nodesToDelete; } UA_DeleteNodesRequest; #define UA_TYPES_DELETENODESREQUEST 77 static UA_INLINE void UA_DeleteNodesRequest_init(UA_DeleteNodesRequest *p) { memset(p, 0, sizeof(UA_DeleteNodesRequest)); } static UA_INLINE UA_DeleteNodesRequest * UA_DeleteNodesRequest_new(void) { return (UA_DeleteNodesRequest*) UA_new(&UA_TYPES[UA_TYPES_DELETENODESREQUEST]); } static UA_INLINE UA_StatusCode UA_DeleteNodesRequest_copy(const UA_DeleteNodesRequest *src, UA_DeleteNodesRequest *dst) { return UA_copy(src, dst, &UA_TYPES[UA_TYPES_DELETENODESREQUEST]); } static UA_INLINE void UA_DeleteNodesRequest_deleteMembers(UA_DeleteNodesRequest *p) { UA_deleteMembers(p, &UA_TYPES[UA_TYPES_DELETENODESREQUEST]); } static UA_INLINE void UA_DeleteNodesRequest_delete(UA_DeleteNodesRequest *p) { UA_delete(p, &UA_TYPES[UA_TYPES_DELETENODESREQUEST]); } /** * PublishResponse * --------------- */ typedef struct { UA_ResponseHeader responseHeader; UA_UInt32 subscriptionId; size_t availableSequenceNumbersSize; UA_UInt32 *availableSequenceNumbers; UA_Boolean moreNotifications; UA_NotificationMessage notificationMessage; size_t resultsSize; UA_StatusCode *results; size_t diagnosticInfosSize; UA_DiagnosticInfo *diagnosticInfos; } UA_PublishResponse; #define UA_TYPES_PUBLISHRESPONSE 78 static UA_INLINE void UA_PublishResponse_init(UA_PublishResponse *p) { memset(p, 0, sizeof(UA_PublishResponse)); } static UA_INLINE UA_PublishResponse * UA_PublishResponse_new(void) { return (UA_PublishResponse*) UA_new(&UA_TYPES[UA_TYPES_PUBLISHRESPONSE]); } static UA_INLINE UA_StatusCode UA_PublishResponse_copy(const UA_PublishResponse *src, UA_PublishResponse *dst) { return UA_copy(src, dst, &UA_TYPES[UA_TYPES_PUBLISHRESPONSE]); } static UA_INLINE void UA_PublishResponse_deleteMembers(UA_PublishResponse *p) { UA_deleteMembers(p, &UA_TYPES[UA_TYPES_PUBLISHRESPONSE]); } static UA_INLINE void UA_PublishResponse_delete(UA_PublishResponse *p) { UA_delete(p, &UA_TYPES[UA_TYPES_PUBLISHRESPONSE]); } /** * MonitoredItemModifyRequest * -------------------------- */ typedef struct { UA_UInt32 monitoredItemId; UA_MonitoringParameters requestedParameters; } UA_MonitoredItemModifyRequest; #define UA_TYPES_MONITOREDITEMMODIFYREQUEST 79 static UA_INLINE void UA_MonitoredItemModifyRequest_init(UA_MonitoredItemModifyRequest *p) { memset(p, 0, sizeof(UA_MonitoredItemModifyRequest)); } static UA_INLINE UA_MonitoredItemModifyRequest * UA_MonitoredItemModifyRequest_new(void) { return (UA_MonitoredItemModifyRequest*) UA_new(&UA_TYPES[UA_TYPES_MONITOREDITEMMODIFYREQUEST]); } static UA_INLINE UA_StatusCode UA_MonitoredItemModifyRequest_copy(const UA_MonitoredItemModifyRequest *src, UA_MonitoredItemModifyRequest *dst) { return UA_copy(src, dst, &UA_TYPES[UA_TYPES_MONITOREDITEMMODIFYREQUEST]); } static UA_INLINE void UA_MonitoredItemModifyRequest_deleteMembers(UA_MonitoredItemModifyRequest *p) { UA_deleteMembers(p, &UA_TYPES[UA_TYPES_MONITOREDITEMMODIFYREQUEST]); } static UA_INLINE void UA_MonitoredItemModifyRequest_delete(UA_MonitoredItemModifyRequest *p) { UA_delete(p, &UA_TYPES[UA_TYPES_MONITOREDITEMMODIFYREQUEST]); } /** * UserNameIdentityToken * --------------------- * A token representing a user identified by a user name and password. */ typedef struct { UA_String policyId; UA_String userName; UA_ByteString password; UA_String encryptionAlgorithm; } UA_UserNameIdentityToken; #define UA_TYPES_USERNAMEIDENTITYTOKEN 80 static UA_INLINE void UA_UserNameIdentityToken_init(UA_UserNameIdentityToken *p) { memset(p, 0, sizeof(UA_UserNameIdentityToken)); } static UA_INLINE UA_UserNameIdentityToken * UA_UserNameIdentityToken_new(void) { return (UA_UserNameIdentityToken*) UA_new(&UA_TYPES[UA_TYPES_USERNAMEIDENTITYTOKEN]); } static UA_INLINE UA_StatusCode UA_UserNameIdentityToken_copy(const UA_UserNameIdentityToken *src, UA_UserNameIdentityToken *dst) { return UA_copy(src, dst, &UA_TYPES[UA_TYPES_USERNAMEIDENTITYTOKEN]); } static UA_INLINE void UA_UserNameIdentityToken_deleteMembers(UA_UserNameIdentityToken *p) { UA_deleteMembers(p, &UA_TYPES[UA_TYPES_USERNAMEIDENTITYTOKEN]); } static UA_INLINE void UA_UserNameIdentityToken_delete(UA_UserNameIdentityToken *p) { UA_delete(p, &UA_TYPES[UA_TYPES_USERNAMEIDENTITYTOKEN]); } /** * IdType * ------ * The type of identifier used in a node id. */ typedef enum { UA_IDTYPE_NUMERIC = 0, UA_IDTYPE_STRING = 1, UA_IDTYPE_GUID = 2, UA_IDTYPE_OPAQUE = 3 } UA_IdType; #define UA_TYPES_IDTYPE 81 static UA_INLINE void UA_IdType_init(UA_IdType *p) { memset(p, 0, sizeof(UA_IdType)); } static UA_INLINE UA_IdType * UA_IdType_new(void) { return (UA_IdType*) UA_new(&UA_TYPES[UA_TYPES_IDTYPE]); } static UA_INLINE UA_StatusCode UA_IdType_copy(const UA_IdType *src, UA_IdType *dst) { *dst = *src; return UA_STATUSCODE_GOOD; } static UA_INLINE void UA_IdType_deleteMembers(UA_IdType *p) { } static UA_INLINE void UA_IdType_delete(UA_IdType *p) { UA_delete(p, &UA_TYPES[UA_TYPES_IDTYPE]); } /** * UserTokenType * ------------- * The possible user token types. */ typedef enum { UA_USERTOKENTYPE_ANONYMOUS = 0, UA_USERTOKENTYPE_USERNAME = 1, UA_USERTOKENTYPE_CERTIFICATE = 2, UA_USERTOKENTYPE_ISSUEDTOKEN = 3 } UA_UserTokenType; #define UA_TYPES_USERTOKENTYPE 82 static UA_INLINE void UA_UserTokenType_init(UA_UserTokenType *p) { memset(p, 0, sizeof(UA_UserTokenType)); } static UA_INLINE UA_UserTokenType * UA_UserTokenType_new(void) { return (UA_UserTokenType*) UA_new(&UA_TYPES[UA_TYPES_USERTOKENTYPE]); } static UA_INLINE UA_StatusCode UA_UserTokenType_copy(const UA_UserTokenType *src, UA_UserTokenType *dst) { *dst = *src; return UA_STATUSCODE_GOOD; } static UA_INLINE void UA_UserTokenType_deleteMembers(UA_UserTokenType *p) { } static UA_INLINE void UA_UserTokenType_delete(UA_UserTokenType *p) { UA_delete(p, &UA_TYPES[UA_TYPES_USERTOKENTYPE]); } /** * NodeAttributes * -------------- * The base attributes for all nodes. */ typedef struct { UA_UInt32 specifiedAttributes; UA_LocalizedText displayName; UA_LocalizedText description; UA_UInt32 writeMask; UA_UInt32 userWriteMask; } UA_NodeAttributes; #define UA_TYPES_NODEATTRIBUTES 83 static UA_INLINE void UA_NodeAttributes_init(UA_NodeAttributes *p) { memset(p, 0, sizeof(UA_NodeAttributes)); } static UA_INLINE UA_NodeAttributes * UA_NodeAttributes_new(void) { return (UA_NodeAttributes*) UA_new(&UA_TYPES[UA_TYPES_NODEATTRIBUTES]); } static UA_INLINE UA_StatusCode UA_NodeAttributes_copy(const UA_NodeAttributes *src, UA_NodeAttributes *dst) { return UA_copy(src, dst, &UA_TYPES[UA_TYPES_NODEATTRIBUTES]); } static UA_INLINE void UA_NodeAttributes_deleteMembers(UA_NodeAttributes *p) { UA_deleteMembers(p, &UA_TYPES[UA_TYPES_NODEATTRIBUTES]); } static UA_INLINE void UA_NodeAttributes_delete(UA_NodeAttributes *p) { UA_delete(p, &UA_TYPES[UA_TYPES_NODEATTRIBUTES]); } /** * ActivateSessionRequest * ---------------------- * Activates a session with the server. */ typedef struct { UA_RequestHeader requestHeader; UA_SignatureData clientSignature; size_t clientSoftwareCertificatesSize; UA_SignedSoftwareCertificate *clientSoftwareCertificates; size_t localeIdsSize; UA_String *localeIds; UA_ExtensionObject userIdentityToken; UA_SignatureData userTokenSignature; } UA_ActivateSessionRequest; #define UA_TYPES_ACTIVATESESSIONREQUEST 84 static UA_INLINE void UA_ActivateSessionRequest_init(UA_ActivateSessionRequest *p) { memset(p, 0, sizeof(UA_ActivateSessionRequest)); } static UA_INLINE UA_ActivateSessionRequest * UA_ActivateSessionRequest_new(void) { return (UA_ActivateSessionRequest*) UA_new(&UA_TYPES[UA_TYPES_ACTIVATESESSIONREQUEST]); } static UA_INLINE UA_StatusCode UA_ActivateSessionRequest_copy(const UA_ActivateSessionRequest *src, UA_ActivateSessionRequest *dst) { return UA_copy(src, dst, &UA_TYPES[UA_TYPES_ACTIVATESESSIONREQUEST]); } static UA_INLINE void UA_ActivateSessionRequest_deleteMembers(UA_ActivateSessionRequest *p) { UA_deleteMembers(p, &UA_TYPES[UA_TYPES_ACTIVATESESSIONREQUEST]); } static UA_INLINE void UA_ActivateSessionRequest_delete(UA_ActivateSessionRequest *p) { UA_delete(p, &UA_TYPES[UA_TYPES_ACTIVATESESSIONREQUEST]); } /** * OpenSecureChannelResponse * ------------------------- * Creates a secure channel with a server. */ typedef struct { UA_ResponseHeader responseHeader; UA_UInt32 serverProtocolVersion; UA_ChannelSecurityToken securityToken; UA_ByteString serverNonce; } UA_OpenSecureChannelResponse; #define UA_TYPES_OPENSECURECHANNELRESPONSE 85 static UA_INLINE void UA_OpenSecureChannelResponse_init(UA_OpenSecureChannelResponse *p) { memset(p, 0, sizeof(UA_OpenSecureChannelResponse)); } static UA_INLINE UA_OpenSecureChannelResponse * UA_OpenSecureChannelResponse_new(void) { return (UA_OpenSecureChannelResponse*) UA_new(&UA_TYPES[UA_TYPES_OPENSECURECHANNELRESPONSE]); } static UA_INLINE UA_StatusCode UA_OpenSecureChannelResponse_copy(const UA_OpenSecureChannelResponse *src, UA_OpenSecureChannelResponse *dst) { return UA_copy(src, dst, &UA_TYPES[UA_TYPES_OPENSECURECHANNELRESPONSE]); } static UA_INLINE void UA_OpenSecureChannelResponse_deleteMembers(UA_OpenSecureChannelResponse *p) { UA_deleteMembers(p, &UA_TYPES[UA_TYPES_OPENSECURECHANNELRESPONSE]); } static UA_INLINE void UA_OpenSecureChannelResponse_delete(UA_OpenSecureChannelResponse *p) { UA_delete(p, &UA_TYPES[UA_TYPES_OPENSECURECHANNELRESPONSE]); } /** * ApplicationType * --------------- * The types of applications. */ typedef enum { UA_APPLICATIONTYPE_SERVER = 0, UA_APPLICATIONTYPE_CLIENT = 1, UA_APPLICATIONTYPE_CLIENTANDSERVER = 2, UA_APPLICATIONTYPE_DISCOVERYSERVER = 3 } UA_ApplicationType; #define UA_TYPES_APPLICATIONTYPE 86 static UA_INLINE void UA_ApplicationType_init(UA_ApplicationType *p) { memset(p, 0, sizeof(UA_ApplicationType)); } static UA_INLINE UA_ApplicationType * UA_ApplicationType_new(void) { return (UA_ApplicationType*) UA_new(&UA_TYPES[UA_TYPES_APPLICATIONTYPE]); } static UA_INLINE UA_StatusCode UA_ApplicationType_copy(const UA_ApplicationType *src, UA_ApplicationType *dst) { *dst = *src; return UA_STATUSCODE_GOOD; } static UA_INLINE void UA_ApplicationType_deleteMembers(UA_ApplicationType *p) { } static UA_INLINE void UA_ApplicationType_delete(UA_ApplicationType *p) { UA_delete(p, &UA_TYPES[UA_TYPES_APPLICATIONTYPE]); } /** * QueryNextResponse * ----------------- */ typedef struct { UA_ResponseHeader responseHeader; size_t queryDataSetsSize; UA_QueryDataSet *queryDataSets; UA_ByteString revisedContinuationPoint; } UA_QueryNextResponse; #define UA_TYPES_QUERYNEXTRESPONSE 87 static UA_INLINE void UA_QueryNextResponse_init(UA_QueryNextResponse *p) { memset(p, 0, sizeof(UA_QueryNextResponse)); } static UA_INLINE UA_QueryNextResponse * UA_QueryNextResponse_new(void) { return (UA_QueryNextResponse*) UA_new(&UA_TYPES[UA_TYPES_QUERYNEXTRESPONSE]); } static UA_INLINE UA_StatusCode UA_QueryNextResponse_copy(const UA_QueryNextResponse *src, UA_QueryNextResponse *dst) { return UA_copy(src, dst, &UA_TYPES[UA_TYPES_QUERYNEXTRESPONSE]); } static UA_INLINE void UA_QueryNextResponse_deleteMembers(UA_QueryNextResponse *p) { UA_deleteMembers(p, &UA_TYPES[UA_TYPES_QUERYNEXTRESPONSE]); } static UA_INLINE void UA_QueryNextResponse_delete(UA_QueryNextResponse *p) { UA_delete(p, &UA_TYPES[UA_TYPES_QUERYNEXTRESPONSE]); } /** * ActivateSessionResponse * ----------------------- * Activates a session with the server. */ typedef struct { UA_ResponseHeader responseHeader; UA_ByteString serverNonce; size_t resultsSize; UA_StatusCode *results; size_t diagnosticInfosSize; UA_DiagnosticInfo *diagnosticInfos; } UA_ActivateSessionResponse; #define UA_TYPES_ACTIVATESESSIONRESPONSE 88 static UA_INLINE void UA_ActivateSessionResponse_init(UA_ActivateSessionResponse *p) { memset(p, 0, sizeof(UA_ActivateSessionResponse)); } static UA_INLINE UA_ActivateSessionResponse * UA_ActivateSessionResponse_new(void) { return (UA_ActivateSessionResponse*) UA_new(&UA_TYPES[UA_TYPES_ACTIVATESESSIONRESPONSE]); } static UA_INLINE UA_StatusCode UA_ActivateSessionResponse_copy(const UA_ActivateSessionResponse *src, UA_ActivateSessionResponse *dst) { return UA_copy(src, dst, &UA_TYPES[UA_TYPES_ACTIVATESESSIONRESPONSE]); } static UA_INLINE void UA_ActivateSessionResponse_deleteMembers(UA_ActivateSessionResponse *p) { UA_deleteMembers(p, &UA_TYPES[UA_TYPES_ACTIVATESESSIONRESPONSE]); } static UA_INLINE void UA_ActivateSessionResponse_delete(UA_ActivateSessionResponse *p) { UA_delete(p, &UA_TYPES[UA_TYPES_ACTIVATESESSIONRESPONSE]); } /** * FilterOperator * -------------- */ typedef enum { UA_FILTEROPERATOR_EQUALS = 0, UA_FILTEROPERATOR_ISNULL = 1, UA_FILTEROPERATOR_GREATERTHAN = 2, UA_FILTEROPERATOR_LESSTHAN = 3, UA_FILTEROPERATOR_GREATERTHANOREQUAL = 4, UA_FILTEROPERATOR_LESSTHANOREQUAL = 5, UA_FILTEROPERATOR_LIKE = 6, UA_FILTEROPERATOR_NOT = 7, UA_FILTEROPERATOR_BETWEEN = 8, UA_FILTEROPERATOR_INLIST = 9, UA_FILTEROPERATOR_AND = 10, UA_FILTEROPERATOR_OR = 11, UA_FILTEROPERATOR_CAST = 12, UA_FILTEROPERATOR_INVIEW = 13, UA_FILTEROPERATOR_OFTYPE = 14, UA_FILTEROPERATOR_RELATEDTO = 15, UA_FILTEROPERATOR_BITWISEAND = 16, UA_FILTEROPERATOR_BITWISEOR = 17 } UA_FilterOperator; #define UA_TYPES_FILTEROPERATOR 89 static UA_INLINE void UA_FilterOperator_init(UA_FilterOperator *p) { memset(p, 0, sizeof(UA_FilterOperator)); } static UA_INLINE UA_FilterOperator * UA_FilterOperator_new(void) { return (UA_FilterOperator*) UA_new(&UA_TYPES[UA_TYPES_FILTEROPERATOR]); } static UA_INLINE UA_StatusCode UA_FilterOperator_copy(const UA_FilterOperator *src, UA_FilterOperator *dst) { *dst = *src; return UA_STATUSCODE_GOOD; } static UA_INLINE void UA_FilterOperator_deleteMembers(UA_FilterOperator *p) { } static UA_INLINE void UA_FilterOperator_delete(UA_FilterOperator *p) { UA_delete(p, &UA_TYPES[UA_TYPES_FILTEROPERATOR]); } /** * QueryNextRequest * ---------------- */ typedef struct { UA_RequestHeader requestHeader; UA_Boolean releaseContinuationPoint; UA_ByteString continuationPoint; } UA_QueryNextRequest; #define UA_TYPES_QUERYNEXTREQUEST 90 static UA_INLINE void UA_QueryNextRequest_init(UA_QueryNextRequest *p) { memset(p, 0, sizeof(UA_QueryNextRequest)); } static UA_INLINE UA_QueryNextRequest * UA_QueryNextRequest_new(void) { return (UA_QueryNextRequest*) UA_new(&UA_TYPES[UA_TYPES_QUERYNEXTREQUEST]); } static UA_INLINE UA_StatusCode UA_QueryNextRequest_copy(const UA_QueryNextRequest *src, UA_QueryNextRequest *dst) { return UA_copy(src, dst, &UA_TYPES[UA_TYPES_QUERYNEXTREQUEST]); } static UA_INLINE void UA_QueryNextRequest_deleteMembers(UA_QueryNextRequest *p) { UA_deleteMembers(p, &UA_TYPES[UA_TYPES_QUERYNEXTREQUEST]); } static UA_INLINE void UA_QueryNextRequest_delete(UA_QueryNextRequest *p) { UA_delete(p, &UA_TYPES[UA_TYPES_QUERYNEXTREQUEST]); } /** * BrowseNextRequest * ----------------- * Continues one or more browse operations. */ typedef struct { UA_RequestHeader requestHeader; UA_Boolean releaseContinuationPoints; size_t continuationPointsSize; UA_ByteString *continuationPoints; } UA_BrowseNextRequest; #define UA_TYPES_BROWSENEXTREQUEST 91 static UA_INLINE void UA_BrowseNextRequest_init(UA_BrowseNextRequest *p) { memset(p, 0, sizeof(UA_BrowseNextRequest)); } static UA_INLINE UA_BrowseNextRequest * UA_BrowseNextRequest_new(void) { return (UA_BrowseNextRequest*) UA_new(&UA_TYPES[UA_TYPES_BROWSENEXTREQUEST]); } static UA_INLINE UA_StatusCode UA_BrowseNextRequest_copy(const UA_BrowseNextRequest *src, UA_BrowseNextRequest *dst) { return UA_copy(src, dst, &UA_TYPES[UA_TYPES_BROWSENEXTREQUEST]); } static UA_INLINE void UA_BrowseNextRequest_deleteMembers(UA_BrowseNextRequest *p) { UA_deleteMembers(p, &UA_TYPES[UA_TYPES_BROWSENEXTREQUEST]); } static UA_INLINE void UA_BrowseNextRequest_delete(UA_BrowseNextRequest *p) { UA_delete(p, &UA_TYPES[UA_TYPES_BROWSENEXTREQUEST]); } /** * CreateSubscriptionRequest * ------------------------- */ typedef struct { UA_RequestHeader requestHeader; UA_Double requestedPublishingInterval; UA_UInt32 requestedLifetimeCount; UA_UInt32 requestedMaxKeepAliveCount; UA_UInt32 maxNotificationsPerPublish; UA_Boolean publishingEnabled; UA_Byte priority; } UA_CreateSubscriptionRequest; #define UA_TYPES_CREATESUBSCRIPTIONREQUEST 92 static UA_INLINE void UA_CreateSubscriptionRequest_init(UA_CreateSubscriptionRequest *p) { memset(p, 0, sizeof(UA_CreateSubscriptionRequest)); } static UA_INLINE UA_CreateSubscriptionRequest * UA_CreateSubscriptionRequest_new(void) { return (UA_CreateSubscriptionRequest*) UA_new(&UA_TYPES[UA_TYPES_CREATESUBSCRIPTIONREQUEST]); } static UA_INLINE UA_StatusCode UA_CreateSubscriptionRequest_copy(const UA_CreateSubscriptionRequest *src, UA_CreateSubscriptionRequest *dst) { return UA_copy(src, dst, &UA_TYPES[UA_TYPES_CREATESUBSCRIPTIONREQUEST]); } static UA_INLINE void UA_CreateSubscriptionRequest_deleteMembers(UA_CreateSubscriptionRequest *p) { UA_deleteMembers(p, &UA_TYPES[UA_TYPES_CREATESUBSCRIPTIONREQUEST]); } static UA_INLINE void UA_CreateSubscriptionRequest_delete(UA_CreateSubscriptionRequest *p) { UA_delete(p, &UA_TYPES[UA_TYPES_CREATESUBSCRIPTIONREQUEST]); } /** * VariableTypeAttributes * ---------------------- * The attributes for a variable type node. */ typedef struct { UA_UInt32 specifiedAttributes; UA_LocalizedText displayName; UA_LocalizedText description; UA_UInt32 writeMask; UA_UInt32 userWriteMask; UA_Variant value; UA_NodeId dataType; UA_Int32 valueRank; size_t arrayDimensionsSize; UA_UInt32 *arrayDimensions; UA_Boolean isAbstract; } UA_VariableTypeAttributes; #define UA_TYPES_VARIABLETYPEATTRIBUTES 93 static UA_INLINE void UA_VariableTypeAttributes_init(UA_VariableTypeAttributes *p) { memset(p, 0, sizeof(UA_VariableTypeAttributes)); } static UA_INLINE UA_VariableTypeAttributes * UA_VariableTypeAttributes_new(void) { return (UA_VariableTypeAttributes*) UA_new(&UA_TYPES[UA_TYPES_VARIABLETYPEATTRIBUTES]); } static UA_INLINE UA_StatusCode UA_VariableTypeAttributes_copy(const UA_VariableTypeAttributes *src, UA_VariableTypeAttributes *dst) { return UA_copy(src, dst, &UA_TYPES[UA_TYPES_VARIABLETYPEATTRIBUTES]); } static UA_INLINE void UA_VariableTypeAttributes_deleteMembers(UA_VariableTypeAttributes *p) { UA_deleteMembers(p, &UA_TYPES[UA_TYPES_VARIABLETYPEATTRIBUTES]); } static UA_INLINE void UA_VariableTypeAttributes_delete(UA_VariableTypeAttributes *p) { UA_delete(p, &UA_TYPES[UA_TYPES_VARIABLETYPEATTRIBUTES]); } /** * BrowsePathResult * ---------------- * The result of a translate opearation. */ typedef struct { UA_StatusCode statusCode; size_t targetsSize; UA_BrowsePathTarget *targets; } UA_BrowsePathResult; #define UA_TYPES_BROWSEPATHRESULT 94 static UA_INLINE void UA_BrowsePathResult_init(UA_BrowsePathResult *p) { memset(p, 0, sizeof(UA_BrowsePathResult)); } static UA_INLINE UA_BrowsePathResult * UA_BrowsePathResult_new(void) { return (UA_BrowsePathResult*) UA_new(&UA_TYPES[UA_TYPES_BROWSEPATHRESULT]); } static UA_INLINE UA_StatusCode UA_BrowsePathResult_copy(const UA_BrowsePathResult *src, UA_BrowsePathResult *dst) { return UA_copy(src, dst, &UA_TYPES[UA_TYPES_BROWSEPATHRESULT]); } static UA_INLINE void UA_BrowsePathResult_deleteMembers(UA_BrowsePathResult *p) { UA_deleteMembers(p, &UA_TYPES[UA_TYPES_BROWSEPATHRESULT]); } static UA_INLINE void UA_BrowsePathResult_delete(UA_BrowsePathResult *p) { UA_delete(p, &UA_TYPES[UA_TYPES_BROWSEPATHRESULT]); } /** * ModifySubscriptionResponse * -------------------------- */ typedef struct { UA_ResponseHeader responseHeader; UA_Double revisedPublishingInterval; UA_UInt32 revisedLifetimeCount; UA_UInt32 revisedMaxKeepAliveCount; } UA_ModifySubscriptionResponse; #define UA_TYPES_MODIFYSUBSCRIPTIONRESPONSE 95 static UA_INLINE void UA_ModifySubscriptionResponse_init(UA_ModifySubscriptionResponse *p) { memset(p, 0, sizeof(UA_ModifySubscriptionResponse)); } static UA_INLINE UA_ModifySubscriptionResponse * UA_ModifySubscriptionResponse_new(void) { return (UA_ModifySubscriptionResponse*) UA_new(&UA_TYPES[UA_TYPES_MODIFYSUBSCRIPTIONRESPONSE]); } static UA_INLINE UA_StatusCode UA_ModifySubscriptionResponse_copy(const UA_ModifySubscriptionResponse *src, UA_ModifySubscriptionResponse *dst) { return UA_copy(src, dst, &UA_TYPES[UA_TYPES_MODIFYSUBSCRIPTIONRESPONSE]); } static UA_INLINE void UA_ModifySubscriptionResponse_deleteMembers(UA_ModifySubscriptionResponse *p) { UA_deleteMembers(p, &UA_TYPES[UA_TYPES_MODIFYSUBSCRIPTIONRESPONSE]); } static UA_INLINE void UA_ModifySubscriptionResponse_delete(UA_ModifySubscriptionResponse *p) { UA_delete(p, &UA_TYPES[UA_TYPES_MODIFYSUBSCRIPTIONRESPONSE]); } /** * RegisterNodesResponse * --------------------- * Registers one or more nodes for repeated use within a session. */ typedef struct { UA_ResponseHeader responseHeader; size_t registeredNodeIdsSize; UA_NodeId *registeredNodeIds; } UA_RegisterNodesResponse; #define UA_TYPES_REGISTERNODESRESPONSE 96 static UA_INLINE void UA_RegisterNodesResponse_init(UA_RegisterNodesResponse *p) { memset(p, 0, sizeof(UA_RegisterNodesResponse)); } static UA_INLINE UA_RegisterNodesResponse * UA_RegisterNodesResponse_new(void) { return (UA_RegisterNodesResponse*) UA_new(&UA_TYPES[UA_TYPES_REGISTERNODESRESPONSE]); } static UA_INLINE UA_StatusCode UA_RegisterNodesResponse_copy(const UA_RegisterNodesResponse *src, UA_RegisterNodesResponse *dst) { return UA_copy(src, dst, &UA_TYPES[UA_TYPES_REGISTERNODESRESPONSE]); } static UA_INLINE void UA_RegisterNodesResponse_deleteMembers(UA_RegisterNodesResponse *p) { UA_deleteMembers(p, &UA_TYPES[UA_TYPES_REGISTERNODESRESPONSE]); } static UA_INLINE void UA_RegisterNodesResponse_delete(UA_RegisterNodesResponse *p) { UA_delete(p, &UA_TYPES[UA_TYPES_REGISTERNODESRESPONSE]); } /** * CloseSessionRequest * ------------------- * Closes a session with the server. */ typedef struct { UA_RequestHeader requestHeader; UA_Boolean deleteSubscriptions; } UA_CloseSessionRequest; #define UA_TYPES_CLOSESESSIONREQUEST 97 static UA_INLINE void UA_CloseSessionRequest_init(UA_CloseSessionRequest *p) { memset(p, 0, sizeof(UA_CloseSessionRequest)); } static UA_INLINE UA_CloseSessionRequest * UA_CloseSessionRequest_new(void) { return (UA_CloseSessionRequest*) UA_new(&UA_TYPES[UA_TYPES_CLOSESESSIONREQUEST]); } static UA_INLINE UA_StatusCode UA_CloseSessionRequest_copy(const UA_CloseSessionRequest *src, UA_CloseSessionRequest *dst) { return UA_copy(src, dst, &UA_TYPES[UA_TYPES_CLOSESESSIONREQUEST]); } static UA_INLINE void UA_CloseSessionRequest_deleteMembers(UA_CloseSessionRequest *p) { UA_deleteMembers(p, &UA_TYPES[UA_TYPES_CLOSESESSIONREQUEST]); } static UA_INLINE void UA_CloseSessionRequest_delete(UA_CloseSessionRequest *p) { UA_delete(p, &UA_TYPES[UA_TYPES_CLOSESESSIONREQUEST]); } /** * ModifySubscriptionRequest * ------------------------- */ typedef struct { UA_RequestHeader requestHeader; UA_UInt32 subscriptionId; UA_Double requestedPublishingInterval; UA_UInt32 requestedLifetimeCount; UA_UInt32 requestedMaxKeepAliveCount; UA_UInt32 maxNotificationsPerPublish; UA_Byte priority; } UA_ModifySubscriptionRequest; #define UA_TYPES_MODIFYSUBSCRIPTIONREQUEST 98 static UA_INLINE void UA_ModifySubscriptionRequest_init(UA_ModifySubscriptionRequest *p) { memset(p, 0, sizeof(UA_ModifySubscriptionRequest)); } static UA_INLINE UA_ModifySubscriptionRequest * UA_ModifySubscriptionRequest_new(void) { return (UA_ModifySubscriptionRequest*) UA_new(&UA_TYPES[UA_TYPES_MODIFYSUBSCRIPTIONREQUEST]); } static UA_INLINE UA_StatusCode UA_ModifySubscriptionRequest_copy(const UA_ModifySubscriptionRequest *src, UA_ModifySubscriptionRequest *dst) { return UA_copy(src, dst, &UA_TYPES[UA_TYPES_MODIFYSUBSCRIPTIONREQUEST]); } static UA_INLINE void UA_ModifySubscriptionRequest_deleteMembers(UA_ModifySubscriptionRequest *p) { UA_deleteMembers(p, &UA_TYPES[UA_TYPES_MODIFYSUBSCRIPTIONREQUEST]); } static UA_INLINE void UA_ModifySubscriptionRequest_delete(UA_ModifySubscriptionRequest *p) { UA_delete(p, &UA_TYPES[UA_TYPES_MODIFYSUBSCRIPTIONREQUEST]); } /** * UserTokenPolicy * --------------- * Describes a user token that can be used with a server. */ typedef struct { UA_String policyId; UA_UserTokenType tokenType; UA_String issuedTokenType; UA_String issuerEndpointUrl; UA_String securityPolicyUri; } UA_UserTokenPolicy; #define UA_TYPES_USERTOKENPOLICY 99 static UA_INLINE void UA_UserTokenPolicy_init(UA_UserTokenPolicy *p) { memset(p, 0, sizeof(UA_UserTokenPolicy)); } static UA_INLINE UA_UserTokenPolicy * UA_UserTokenPolicy_new(void) { return (UA_UserTokenPolicy*) UA_new(&UA_TYPES[UA_TYPES_USERTOKENPOLICY]); } static UA_INLINE UA_StatusCode UA_UserTokenPolicy_copy(const UA_UserTokenPolicy *src, UA_UserTokenPolicy *dst) { return UA_copy(src, dst, &UA_TYPES[UA_TYPES_USERTOKENPOLICY]); } static UA_INLINE void UA_UserTokenPolicy_deleteMembers(UA_UserTokenPolicy *p) { UA_deleteMembers(p, &UA_TYPES[UA_TYPES_USERTOKENPOLICY]); } static UA_INLINE void UA_UserTokenPolicy_delete(UA_UserTokenPolicy *p) { UA_delete(p, &UA_TYPES[UA_TYPES_USERTOKENPOLICY]); } /** * DeleteMonitoredItemsRequest * --------------------------- */ typedef struct { UA_RequestHeader requestHeader; UA_UInt32 subscriptionId; size_t monitoredItemIdsSize; UA_UInt32 *monitoredItemIds; } UA_DeleteMonitoredItemsRequest; #define UA_TYPES_DELETEMONITOREDITEMSREQUEST 100 static UA_INLINE void UA_DeleteMonitoredItemsRequest_init(UA_DeleteMonitoredItemsRequest *p) { memset(p, 0, sizeof(UA_DeleteMonitoredItemsRequest)); } static UA_INLINE UA_DeleteMonitoredItemsRequest * UA_DeleteMonitoredItemsRequest_new(void) { return (UA_DeleteMonitoredItemsRequest*) UA_new(&UA_TYPES[UA_TYPES_DELETEMONITOREDITEMSREQUEST]); } static UA_INLINE UA_StatusCode UA_DeleteMonitoredItemsRequest_copy(const UA_DeleteMonitoredItemsRequest *src, UA_DeleteMonitoredItemsRequest *dst) { return UA_copy(src, dst, &UA_TYPES[UA_TYPES_DELETEMONITOREDITEMSREQUEST]); } static UA_INLINE void UA_DeleteMonitoredItemsRequest_deleteMembers(UA_DeleteMonitoredItemsRequest *p) { UA_deleteMembers(p, &UA_TYPES[UA_TYPES_DELETEMONITOREDITEMSREQUEST]); } static UA_INLINE void UA_DeleteMonitoredItemsRequest_delete(UA_DeleteMonitoredItemsRequest *p) { UA_delete(p, &UA_TYPES[UA_TYPES_DELETEMONITOREDITEMSREQUEST]); } /** * ReferenceTypeAttributes * ----------------------- * The attributes for a reference type node. */ typedef struct { UA_UInt32 specifiedAttributes; UA_LocalizedText displayName; UA_LocalizedText description; UA_UInt32 writeMask; UA_UInt32 userWriteMask; UA_Boolean isAbstract; UA_Boolean symmetric; UA_LocalizedText inverseName; } UA_ReferenceTypeAttributes; #define UA_TYPES_REFERENCETYPEATTRIBUTES 101 static UA_INLINE void UA_ReferenceTypeAttributes_init(UA_ReferenceTypeAttributes *p) { memset(p, 0, sizeof(UA_ReferenceTypeAttributes)); } static UA_INLINE UA_ReferenceTypeAttributes * UA_ReferenceTypeAttributes_new(void) { return (UA_ReferenceTypeAttributes*) UA_new(&UA_TYPES[UA_TYPES_REFERENCETYPEATTRIBUTES]); } static UA_INLINE UA_StatusCode UA_ReferenceTypeAttributes_copy(const UA_ReferenceTypeAttributes *src, UA_ReferenceTypeAttributes *dst) { return UA_copy(src, dst, &UA_TYPES[UA_TYPES_REFERENCETYPEATTRIBUTES]); } static UA_INLINE void UA_ReferenceTypeAttributes_deleteMembers(UA_ReferenceTypeAttributes *p) { UA_deleteMembers(p, &UA_TYPES[UA_TYPES_REFERENCETYPEATTRIBUTES]); } static UA_INLINE void UA_ReferenceTypeAttributes_delete(UA_ReferenceTypeAttributes *p) { UA_delete(p, &UA_TYPES[UA_TYPES_REFERENCETYPEATTRIBUTES]); } /** * BrowsePath * ---------- * A request to translate a path into a node id. */ typedef struct { UA_NodeId startingNode; UA_RelativePath relativePath; } UA_BrowsePath; #define UA_TYPES_BROWSEPATH 102 static UA_INLINE void UA_BrowsePath_init(UA_BrowsePath *p) { memset(p, 0, sizeof(UA_BrowsePath)); } static UA_INLINE UA_BrowsePath * UA_BrowsePath_new(void) { return (UA_BrowsePath*) UA_new(&UA_TYPES[UA_TYPES_BROWSEPATH]); } static UA_INLINE UA_StatusCode UA_BrowsePath_copy(const UA_BrowsePath *src, UA_BrowsePath *dst) { return UA_copy(src, dst, &UA_TYPES[UA_TYPES_BROWSEPATH]); } static UA_INLINE void UA_BrowsePath_deleteMembers(UA_BrowsePath *p) { UA_deleteMembers(p, &UA_TYPES[UA_TYPES_BROWSEPATH]); } static UA_INLINE void UA_BrowsePath_delete(UA_BrowsePath *p) { UA_delete(p, &UA_TYPES[UA_TYPES_BROWSEPATH]); } /** * UnregisterNodesResponse * ----------------------- * Unregisters one or more previously registered nodes. */ typedef struct { UA_ResponseHeader responseHeader; } UA_UnregisterNodesResponse; #define UA_TYPES_UNREGISTERNODESRESPONSE 103 static UA_INLINE void UA_UnregisterNodesResponse_init(UA_UnregisterNodesResponse *p) { memset(p, 0, sizeof(UA_UnregisterNodesResponse)); } static UA_INLINE UA_UnregisterNodesResponse * UA_UnregisterNodesResponse_new(void) { return (UA_UnregisterNodesResponse*) UA_new(&UA_TYPES[UA_TYPES_UNREGISTERNODESRESPONSE]); } static UA_INLINE UA_StatusCode UA_UnregisterNodesResponse_copy(const UA_UnregisterNodesResponse *src, UA_UnregisterNodesResponse *dst) { return UA_copy(src, dst, &UA_TYPES[UA_TYPES_UNREGISTERNODESRESPONSE]); } static UA_INLINE void UA_UnregisterNodesResponse_deleteMembers(UA_UnregisterNodesResponse *p) { UA_deleteMembers(p, &UA_TYPES[UA_TYPES_UNREGISTERNODESRESPONSE]); } static UA_INLINE void UA_UnregisterNodesResponse_delete(UA_UnregisterNodesResponse *p) { UA_delete(p, &UA_TYPES[UA_TYPES_UNREGISTERNODESRESPONSE]); } /** * WriteRequest * ------------ */ typedef struct { UA_RequestHeader requestHeader; size_t nodesToWriteSize; UA_WriteValue *nodesToWrite; } UA_WriteRequest; #define UA_TYPES_WRITEREQUEST 104 static UA_INLINE void UA_WriteRequest_init(UA_WriteRequest *p) { memset(p, 0, sizeof(UA_WriteRequest)); } static UA_INLINE UA_WriteRequest * UA_WriteRequest_new(void) { return (UA_WriteRequest*) UA_new(&UA_TYPES[UA_TYPES_WRITEREQUEST]); } static UA_INLINE UA_StatusCode UA_WriteRequest_copy(const UA_WriteRequest *src, UA_WriteRequest *dst) { return UA_copy(src, dst, &UA_TYPES[UA_TYPES_WRITEREQUEST]); } static UA_INLINE void UA_WriteRequest_deleteMembers(UA_WriteRequest *p) { UA_deleteMembers(p, &UA_TYPES[UA_TYPES_WRITEREQUEST]); } static UA_INLINE void UA_WriteRequest_delete(UA_WriteRequest *p) { UA_delete(p, &UA_TYPES[UA_TYPES_WRITEREQUEST]); } /** * ObjectAttributes * ---------------- * The attributes for an object node. */ typedef struct { UA_UInt32 specifiedAttributes; UA_LocalizedText displayName; UA_LocalizedText description; UA_UInt32 writeMask; UA_UInt32 userWriteMask; UA_Byte eventNotifier; } UA_ObjectAttributes; #define UA_TYPES_OBJECTATTRIBUTES 105 static UA_INLINE void UA_ObjectAttributes_init(UA_ObjectAttributes *p) { memset(p, 0, sizeof(UA_ObjectAttributes)); } static UA_INLINE UA_ObjectAttributes * UA_ObjectAttributes_new(void) { return (UA_ObjectAttributes*) UA_new(&UA_TYPES[UA_TYPES_OBJECTATTRIBUTES]); } static UA_INLINE UA_StatusCode UA_ObjectAttributes_copy(const UA_ObjectAttributes *src, UA_ObjectAttributes *dst) { return UA_copy(src, dst, &UA_TYPES[UA_TYPES_OBJECTATTRIBUTES]); } static UA_INLINE void UA_ObjectAttributes_deleteMembers(UA_ObjectAttributes *p) { UA_deleteMembers(p, &UA_TYPES[UA_TYPES_OBJECTATTRIBUTES]); } static UA_INLINE void UA_ObjectAttributes_delete(UA_ObjectAttributes *p) { UA_delete(p, &UA_TYPES[UA_TYPES_OBJECTATTRIBUTES]); } /** * BrowseDescription * ----------------- * A request to browse the the references from a node. */ typedef struct { UA_NodeId nodeId; UA_BrowseDirection browseDirection; UA_NodeId referenceTypeId; UA_Boolean includeSubtypes; UA_UInt32 nodeClassMask; UA_UInt32 resultMask; } UA_BrowseDescription; #define UA_TYPES_BROWSEDESCRIPTION 106 static UA_INLINE void UA_BrowseDescription_init(UA_BrowseDescription *p) { memset(p, 0, sizeof(UA_BrowseDescription)); } static UA_INLINE UA_BrowseDescription * UA_BrowseDescription_new(void) { return (UA_BrowseDescription*) UA_new(&UA_TYPES[UA_TYPES_BROWSEDESCRIPTION]); } static UA_INLINE UA_StatusCode UA_BrowseDescription_copy(const UA_BrowseDescription *src, UA_BrowseDescription *dst) { return UA_copy(src, dst, &UA_TYPES[UA_TYPES_BROWSEDESCRIPTION]); } static UA_INLINE void UA_BrowseDescription_deleteMembers(UA_BrowseDescription *p) { UA_deleteMembers(p, &UA_TYPES[UA_TYPES_BROWSEDESCRIPTION]); } static UA_INLINE void UA_BrowseDescription_delete(UA_BrowseDescription *p) { UA_delete(p, &UA_TYPES[UA_TYPES_BROWSEDESCRIPTION]); } /** * RepublishRequest * ---------------- */ typedef struct { UA_RequestHeader requestHeader; UA_UInt32 subscriptionId; UA_UInt32 retransmitSequenceNumber; } UA_RepublishRequest; #define UA_TYPES_REPUBLISHREQUEST 107 static UA_INLINE void UA_RepublishRequest_init(UA_RepublishRequest *p) { memset(p, 0, sizeof(UA_RepublishRequest)); } static UA_INLINE UA_RepublishRequest * UA_RepublishRequest_new(void) { return (UA_RepublishRequest*) UA_new(&UA_TYPES[UA_TYPES_REPUBLISHREQUEST]); } static UA_INLINE UA_StatusCode UA_RepublishRequest_copy(const UA_RepublishRequest *src, UA_RepublishRequest *dst) { return UA_copy(src, dst, &UA_TYPES[UA_TYPES_REPUBLISHREQUEST]); } static UA_INLINE void UA_RepublishRequest_deleteMembers(UA_RepublishRequest *p) { UA_deleteMembers(p, &UA_TYPES[UA_TYPES_REPUBLISHREQUEST]); } static UA_INLINE void UA_RepublishRequest_delete(UA_RepublishRequest *p) { UA_delete(p, &UA_TYPES[UA_TYPES_REPUBLISHREQUEST]); } /** * GetEndpointsRequest * ------------------- * Gets the endpoints used by the server. */ typedef struct { UA_RequestHeader requestHeader; UA_String endpointUrl; size_t localeIdsSize; UA_String *localeIds; size_t profileUrisSize; UA_String *profileUris; } UA_GetEndpointsRequest; #define UA_TYPES_GETENDPOINTSREQUEST 108 static UA_INLINE void UA_GetEndpointsRequest_init(UA_GetEndpointsRequest *p) { memset(p, 0, sizeof(UA_GetEndpointsRequest)); } static UA_INLINE UA_GetEndpointsRequest * UA_GetEndpointsRequest_new(void) { return (UA_GetEndpointsRequest*) UA_new(&UA_TYPES[UA_TYPES_GETENDPOINTSREQUEST]); } static UA_INLINE UA_StatusCode UA_GetEndpointsRequest_copy(const UA_GetEndpointsRequest *src, UA_GetEndpointsRequest *dst) { return UA_copy(src, dst, &UA_TYPES[UA_TYPES_GETENDPOINTSREQUEST]); } static UA_INLINE void UA_GetEndpointsRequest_deleteMembers(UA_GetEndpointsRequest *p) { UA_deleteMembers(p, &UA_TYPES[UA_TYPES_GETENDPOINTSREQUEST]); } static UA_INLINE void UA_GetEndpointsRequest_delete(UA_GetEndpointsRequest *p) { UA_delete(p, &UA_TYPES[UA_TYPES_GETENDPOINTSREQUEST]); } /** * PublishRequest * -------------- */ typedef struct { UA_RequestHeader requestHeader; size_t subscriptionAcknowledgementsSize; UA_SubscriptionAcknowledgement *subscriptionAcknowledgements; } UA_PublishRequest; #define UA_TYPES_PUBLISHREQUEST 109 static UA_INLINE void UA_PublishRequest_init(UA_PublishRequest *p) { memset(p, 0, sizeof(UA_PublishRequest)); } static UA_INLINE UA_PublishRequest * UA_PublishRequest_new(void) { return (UA_PublishRequest*) UA_new(&UA_TYPES[UA_TYPES_PUBLISHREQUEST]); } static UA_INLINE UA_StatusCode UA_PublishRequest_copy(const UA_PublishRequest *src, UA_PublishRequest *dst) { return UA_copy(src, dst, &UA_TYPES[UA_TYPES_PUBLISHREQUEST]); } static UA_INLINE void UA_PublishRequest_deleteMembers(UA_PublishRequest *p) { UA_deleteMembers(p, &UA_TYPES[UA_TYPES_PUBLISHREQUEST]); } static UA_INLINE void UA_PublishRequest_delete(UA_PublishRequest *p) { UA_delete(p, &UA_TYPES[UA_TYPES_PUBLISHREQUEST]); } /** * AddNodesResponse * ---------------- * Adds one or more nodes to the server address space. */ typedef struct { UA_ResponseHeader responseHeader; size_t resultsSize; UA_AddNodesResult *results; size_t diagnosticInfosSize; UA_DiagnosticInfo *diagnosticInfos; } UA_AddNodesResponse; #define UA_TYPES_ADDNODESRESPONSE 110 static UA_INLINE void UA_AddNodesResponse_init(UA_AddNodesResponse *p) { memset(p, 0, sizeof(UA_AddNodesResponse)); } static UA_INLINE UA_AddNodesResponse * UA_AddNodesResponse_new(void) { return (UA_AddNodesResponse*) UA_new(&UA_TYPES[UA_TYPES_ADDNODESRESPONSE]); } static UA_INLINE UA_StatusCode UA_AddNodesResponse_copy(const UA_AddNodesResponse *src, UA_AddNodesResponse *dst) { return UA_copy(src, dst, &UA_TYPES[UA_TYPES_ADDNODESRESPONSE]); } static UA_INLINE void UA_AddNodesResponse_deleteMembers(UA_AddNodesResponse *p) { UA_deleteMembers(p, &UA_TYPES[UA_TYPES_ADDNODESRESPONSE]); } static UA_INLINE void UA_AddNodesResponse_delete(UA_AddNodesResponse *p) { UA_delete(p, &UA_TYPES[UA_TYPES_ADDNODESRESPONSE]); } /** * CloseSecureChannelResponse * -------------------------- * Closes a secure channel. */ typedef struct { UA_ResponseHeader responseHeader; } UA_CloseSecureChannelResponse; #define UA_TYPES_CLOSESECURECHANNELRESPONSE 111 static UA_INLINE void UA_CloseSecureChannelResponse_init(UA_CloseSecureChannelResponse *p) { memset(p, 0, sizeof(UA_CloseSecureChannelResponse)); } static UA_INLINE UA_CloseSecureChannelResponse * UA_CloseSecureChannelResponse_new(void) { return (UA_CloseSecureChannelResponse*) UA_new(&UA_TYPES[UA_TYPES_CLOSESECURECHANNELRESPONSE]); } static UA_INLINE UA_StatusCode UA_CloseSecureChannelResponse_copy(const UA_CloseSecureChannelResponse *src, UA_CloseSecureChannelResponse *dst) { return UA_copy(src, dst, &UA_TYPES[UA_TYPES_CLOSESECURECHANNELRESPONSE]); } static UA_INLINE void UA_CloseSecureChannelResponse_deleteMembers(UA_CloseSecureChannelResponse *p) { UA_deleteMembers(p, &UA_TYPES[UA_TYPES_CLOSESECURECHANNELRESPONSE]); } static UA_INLINE void UA_CloseSecureChannelResponse_delete(UA_CloseSecureChannelResponse *p) { UA_delete(p, &UA_TYPES[UA_TYPES_CLOSESECURECHANNELRESPONSE]); } /** * ModifyMonitoredItemsRequest * --------------------------- */ typedef struct { UA_RequestHeader requestHeader; UA_UInt32 subscriptionId; UA_TimestampsToReturn timestampsToReturn; size_t itemsToModifySize; UA_MonitoredItemModifyRequest *itemsToModify; } UA_ModifyMonitoredItemsRequest; #define UA_TYPES_MODIFYMONITOREDITEMSREQUEST 112 static UA_INLINE void UA_ModifyMonitoredItemsRequest_init(UA_ModifyMonitoredItemsRequest *p) { memset(p, 0, sizeof(UA_ModifyMonitoredItemsRequest)); } static UA_INLINE UA_ModifyMonitoredItemsRequest * UA_ModifyMonitoredItemsRequest_new(void) { return (UA_ModifyMonitoredItemsRequest*) UA_new(&UA_TYPES[UA_TYPES_MODIFYMONITOREDITEMSREQUEST]); } static UA_INLINE UA_StatusCode UA_ModifyMonitoredItemsRequest_copy(const UA_ModifyMonitoredItemsRequest *src, UA_ModifyMonitoredItemsRequest *dst) { return UA_copy(src, dst, &UA_TYPES[UA_TYPES_MODIFYMONITOREDITEMSREQUEST]); } static UA_INLINE void UA_ModifyMonitoredItemsRequest_deleteMembers(UA_ModifyMonitoredItemsRequest *p) { UA_deleteMembers(p, &UA_TYPES[UA_TYPES_MODIFYMONITOREDITEMSREQUEST]); } static UA_INLINE void UA_ModifyMonitoredItemsRequest_delete(UA_ModifyMonitoredItemsRequest *p) { UA_delete(p, &UA_TYPES[UA_TYPES_MODIFYMONITOREDITEMSREQUEST]); } /** * FindServersRequest * ------------------ * Finds the servers known to the discovery server. */ typedef struct { UA_RequestHeader requestHeader; UA_String endpointUrl; size_t localeIdsSize; UA_String *localeIds; size_t serverUrisSize; UA_String *serverUris; } UA_FindServersRequest; #define UA_TYPES_FINDSERVERSREQUEST 113 static UA_INLINE void UA_FindServersRequest_init(UA_FindServersRequest *p) { memset(p, 0, sizeof(UA_FindServersRequest)); } static UA_INLINE UA_FindServersRequest * UA_FindServersRequest_new(void) { return (UA_FindServersRequest*) UA_new(&UA_TYPES[UA_TYPES_FINDSERVERSREQUEST]); } static UA_INLINE UA_StatusCode UA_FindServersRequest_copy(const UA_FindServersRequest *src, UA_FindServersRequest *dst) { return UA_copy(src, dst, &UA_TYPES[UA_TYPES_FINDSERVERSREQUEST]); } static UA_INLINE void UA_FindServersRequest_deleteMembers(UA_FindServersRequest *p) { UA_deleteMembers(p, &UA_TYPES[UA_TYPES_FINDSERVERSREQUEST]); } static UA_INLINE void UA_FindServersRequest_delete(UA_FindServersRequest *p) { UA_delete(p, &UA_TYPES[UA_TYPES_FINDSERVERSREQUEST]); } /** * ReferenceDescription * -------------------- * The description of a reference. */ typedef struct { UA_NodeId referenceTypeId; UA_Boolean isForward; UA_ExpandedNodeId nodeId; UA_QualifiedName browseName; UA_LocalizedText displayName; UA_NodeClass nodeClass; UA_ExpandedNodeId typeDefinition; } UA_ReferenceDescription; #define UA_TYPES_REFERENCEDESCRIPTION 114 static UA_INLINE void UA_ReferenceDescription_init(UA_ReferenceDescription *p) { memset(p, 0, sizeof(UA_ReferenceDescription)); } static UA_INLINE UA_ReferenceDescription * UA_ReferenceDescription_new(void) { return (UA_ReferenceDescription*) UA_new(&UA_TYPES[UA_TYPES_REFERENCEDESCRIPTION]); } static UA_INLINE UA_StatusCode UA_ReferenceDescription_copy(const UA_ReferenceDescription *src, UA_ReferenceDescription *dst) { return UA_copy(src, dst, &UA_TYPES[UA_TYPES_REFERENCEDESCRIPTION]); } static UA_INLINE void UA_ReferenceDescription_deleteMembers(UA_ReferenceDescription *p) { UA_deleteMembers(p, &UA_TYPES[UA_TYPES_REFERENCEDESCRIPTION]); } static UA_INLINE void UA_ReferenceDescription_delete(UA_ReferenceDescription *p) { UA_delete(p, &UA_TYPES[UA_TYPES_REFERENCEDESCRIPTION]); } /** * SetPublishingModeResponse * ------------------------- */ typedef struct { UA_ResponseHeader responseHeader; size_t resultsSize; UA_StatusCode *results; size_t diagnosticInfosSize; UA_DiagnosticInfo *diagnosticInfos; } UA_SetPublishingModeResponse; #define UA_TYPES_SETPUBLISHINGMODERESPONSE 115 static UA_INLINE void UA_SetPublishingModeResponse_init(UA_SetPublishingModeResponse *p) { memset(p, 0, sizeof(UA_SetPublishingModeResponse)); } static UA_INLINE UA_SetPublishingModeResponse * UA_SetPublishingModeResponse_new(void) { return (UA_SetPublishingModeResponse*) UA_new(&UA_TYPES[UA_TYPES_SETPUBLISHINGMODERESPONSE]); } static UA_INLINE UA_StatusCode UA_SetPublishingModeResponse_copy(const UA_SetPublishingModeResponse *src, UA_SetPublishingModeResponse *dst) { return UA_copy(src, dst, &UA_TYPES[UA_TYPES_SETPUBLISHINGMODERESPONSE]); } static UA_INLINE void UA_SetPublishingModeResponse_deleteMembers(UA_SetPublishingModeResponse *p) { UA_deleteMembers(p, &UA_TYPES[UA_TYPES_SETPUBLISHINGMODERESPONSE]); } static UA_INLINE void UA_SetPublishingModeResponse_delete(UA_SetPublishingModeResponse *p) { UA_delete(p, &UA_TYPES[UA_TYPES_SETPUBLISHINGMODERESPONSE]); } /** * ContentFilterResult * ------------------- */ typedef struct { size_t elementResultsSize; UA_ContentFilterElementResult *elementResults; size_t elementDiagnosticInfosSize; UA_DiagnosticInfo *elementDiagnosticInfos; } UA_ContentFilterResult; #define UA_TYPES_CONTENTFILTERRESULT 116 static UA_INLINE void UA_ContentFilterResult_init(UA_ContentFilterResult *p) { memset(p, 0, sizeof(UA_ContentFilterResult)); } static UA_INLINE UA_ContentFilterResult * UA_ContentFilterResult_new(void) { return (UA_ContentFilterResult*) UA_new(&UA_TYPES[UA_TYPES_CONTENTFILTERRESULT]); } static UA_INLINE UA_StatusCode UA_ContentFilterResult_copy(const UA_ContentFilterResult *src, UA_ContentFilterResult *dst) { return UA_copy(src, dst, &UA_TYPES[UA_TYPES_CONTENTFILTERRESULT]); } static UA_INLINE void UA_ContentFilterResult_deleteMembers(UA_ContentFilterResult *p) { UA_deleteMembers(p, &UA_TYPES[UA_TYPES_CONTENTFILTERRESULT]); } static UA_INLINE void UA_ContentFilterResult_delete(UA_ContentFilterResult *p) { UA_delete(p, &UA_TYPES[UA_TYPES_CONTENTFILTERRESULT]); } /** * AddReferencesItem * ----------------- * A request to add a reference to the server address space. */ typedef struct { UA_NodeId sourceNodeId; UA_NodeId referenceTypeId; UA_Boolean isForward; UA_String targetServerUri; UA_ExpandedNodeId targetNodeId; UA_NodeClass targetNodeClass; } UA_AddReferencesItem; #define UA_TYPES_ADDREFERENCESITEM 117 static UA_INLINE void UA_AddReferencesItem_init(UA_AddReferencesItem *p) { memset(p, 0, sizeof(UA_AddReferencesItem)); } static UA_INLINE UA_AddReferencesItem * UA_AddReferencesItem_new(void) { return (UA_AddReferencesItem*) UA_new(&UA_TYPES[UA_TYPES_ADDREFERENCESITEM]); } static UA_INLINE UA_StatusCode UA_AddReferencesItem_copy(const UA_AddReferencesItem *src, UA_AddReferencesItem *dst) { return UA_copy(src, dst, &UA_TYPES[UA_TYPES_ADDREFERENCESITEM]); } static UA_INLINE void UA_AddReferencesItem_deleteMembers(UA_AddReferencesItem *p) { UA_deleteMembers(p, &UA_TYPES[UA_TYPES_ADDREFERENCESITEM]); } static UA_INLINE void UA_AddReferencesItem_delete(UA_AddReferencesItem *p) { UA_delete(p, &UA_TYPES[UA_TYPES_ADDREFERENCESITEM]); } /** * QueryDataDescription * -------------------- */ typedef struct { UA_RelativePath relativePath; UA_UInt32 attributeId; UA_String indexRange; } UA_QueryDataDescription; #define UA_TYPES_QUERYDATADESCRIPTION 118 static UA_INLINE void UA_QueryDataDescription_init(UA_QueryDataDescription *p) { memset(p, 0, sizeof(UA_QueryDataDescription)); } static UA_INLINE UA_QueryDataDescription * UA_QueryDataDescription_new(void) { return (UA_QueryDataDescription*) UA_new(&UA_TYPES[UA_TYPES_QUERYDATADESCRIPTION]); } static UA_INLINE UA_StatusCode UA_QueryDataDescription_copy(const UA_QueryDataDescription *src, UA_QueryDataDescription *dst) { return UA_copy(src, dst, &UA_TYPES[UA_TYPES_QUERYDATADESCRIPTION]); } static UA_INLINE void UA_QueryDataDescription_deleteMembers(UA_QueryDataDescription *p) { UA_deleteMembers(p, &UA_TYPES[UA_TYPES_QUERYDATADESCRIPTION]); } static UA_INLINE void UA_QueryDataDescription_delete(UA_QueryDataDescription *p) { UA_delete(p, &UA_TYPES[UA_TYPES_QUERYDATADESCRIPTION]); } /** * CreateSubscriptionResponse * -------------------------- */ typedef struct { UA_ResponseHeader responseHeader; UA_UInt32 subscriptionId; UA_Double revisedPublishingInterval; UA_UInt32 revisedLifetimeCount; UA_UInt32 revisedMaxKeepAliveCount; } UA_CreateSubscriptionResponse; #define UA_TYPES_CREATESUBSCRIPTIONRESPONSE 119 static UA_INLINE void UA_CreateSubscriptionResponse_init(UA_CreateSubscriptionResponse *p) { memset(p, 0, sizeof(UA_CreateSubscriptionResponse)); } static UA_INLINE UA_CreateSubscriptionResponse * UA_CreateSubscriptionResponse_new(void) { return (UA_CreateSubscriptionResponse*) UA_new(&UA_TYPES[UA_TYPES_CREATESUBSCRIPTIONRESPONSE]); } static UA_INLINE UA_StatusCode UA_CreateSubscriptionResponse_copy(const UA_CreateSubscriptionResponse *src, UA_CreateSubscriptionResponse *dst) { return UA_copy(src, dst, &UA_TYPES[UA_TYPES_CREATESUBSCRIPTIONRESPONSE]); } static UA_INLINE void UA_CreateSubscriptionResponse_deleteMembers(UA_CreateSubscriptionResponse *p) { UA_deleteMembers(p, &UA_TYPES[UA_TYPES_CREATESUBSCRIPTIONRESPONSE]); } static UA_INLINE void UA_CreateSubscriptionResponse_delete(UA_CreateSubscriptionResponse *p) { UA_delete(p, &UA_TYPES[UA_TYPES_CREATESUBSCRIPTIONRESPONSE]); } /** * DeleteSubscriptionsResponse * --------------------------- */ typedef struct { UA_ResponseHeader responseHeader; size_t resultsSize; UA_StatusCode *results; size_t diagnosticInfosSize; UA_DiagnosticInfo *diagnosticInfos; } UA_DeleteSubscriptionsResponse; #define UA_TYPES_DELETESUBSCRIPTIONSRESPONSE 120 static UA_INLINE void UA_DeleteSubscriptionsResponse_init(UA_DeleteSubscriptionsResponse *p) { memset(p, 0, sizeof(UA_DeleteSubscriptionsResponse)); } static UA_INLINE UA_DeleteSubscriptionsResponse * UA_DeleteSubscriptionsResponse_new(void) { return (UA_DeleteSubscriptionsResponse*) UA_new(&UA_TYPES[UA_TYPES_DELETESUBSCRIPTIONSRESPONSE]); } static UA_INLINE UA_StatusCode UA_DeleteSubscriptionsResponse_copy(const UA_DeleteSubscriptionsResponse *src, UA_DeleteSubscriptionsResponse *dst) { return UA_copy(src, dst, &UA_TYPES[UA_TYPES_DELETESUBSCRIPTIONSRESPONSE]); } static UA_INLINE void UA_DeleteSubscriptionsResponse_deleteMembers(UA_DeleteSubscriptionsResponse *p) { UA_deleteMembers(p, &UA_TYPES[UA_TYPES_DELETESUBSCRIPTIONSRESPONSE]); } static UA_INLINE void UA_DeleteSubscriptionsResponse_delete(UA_DeleteSubscriptionsResponse *p) { UA_delete(p, &UA_TYPES[UA_TYPES_DELETESUBSCRIPTIONSRESPONSE]); } /** * WriteResponse * ------------- */ typedef struct { UA_ResponseHeader responseHeader; size_t resultsSize; UA_StatusCode *results; size_t diagnosticInfosSize; UA_DiagnosticInfo *diagnosticInfos; } UA_WriteResponse; #define UA_TYPES_WRITERESPONSE 121 static UA_INLINE void UA_WriteResponse_init(UA_WriteResponse *p) { memset(p, 0, sizeof(UA_WriteResponse)); } static UA_INLINE UA_WriteResponse * UA_WriteResponse_new(void) { return (UA_WriteResponse*) UA_new(&UA_TYPES[UA_TYPES_WRITERESPONSE]); } static UA_INLINE UA_StatusCode UA_WriteResponse_copy(const UA_WriteResponse *src, UA_WriteResponse *dst) { return UA_copy(src, dst, &UA_TYPES[UA_TYPES_WRITERESPONSE]); } static UA_INLINE void UA_WriteResponse_deleteMembers(UA_WriteResponse *p) { UA_deleteMembers(p, &UA_TYPES[UA_TYPES_WRITERESPONSE]); } static UA_INLINE void UA_WriteResponse_delete(UA_WriteResponse *p) { UA_delete(p, &UA_TYPES[UA_TYPES_WRITERESPONSE]); } /** * DeleteReferencesResponse * ------------------------ * Delete one or more references from the server address space. */ typedef struct { UA_ResponseHeader responseHeader; size_t resultsSize; UA_StatusCode *results; size_t diagnosticInfosSize; UA_DiagnosticInfo *diagnosticInfos; } UA_DeleteReferencesResponse; #define UA_TYPES_DELETEREFERENCESRESPONSE 122 static UA_INLINE void UA_DeleteReferencesResponse_init(UA_DeleteReferencesResponse *p) { memset(p, 0, sizeof(UA_DeleteReferencesResponse)); } static UA_INLINE UA_DeleteReferencesResponse * UA_DeleteReferencesResponse_new(void) { return (UA_DeleteReferencesResponse*) UA_new(&UA_TYPES[UA_TYPES_DELETEREFERENCESRESPONSE]); } static UA_INLINE UA_StatusCode UA_DeleteReferencesResponse_copy(const UA_DeleteReferencesResponse *src, UA_DeleteReferencesResponse *dst) { return UA_copy(src, dst, &UA_TYPES[UA_TYPES_DELETEREFERENCESRESPONSE]); } static UA_INLINE void UA_DeleteReferencesResponse_deleteMembers(UA_DeleteReferencesResponse *p) { UA_deleteMembers(p, &UA_TYPES[UA_TYPES_DELETEREFERENCESRESPONSE]); } static UA_INLINE void UA_DeleteReferencesResponse_delete(UA_DeleteReferencesResponse *p) { UA_delete(p, &UA_TYPES[UA_TYPES_DELETEREFERENCESRESPONSE]); } /** * CreateMonitoredItemsResponse * ---------------------------- */ typedef struct { UA_ResponseHeader responseHeader; size_t resultsSize; UA_MonitoredItemCreateResult *results; size_t diagnosticInfosSize; UA_DiagnosticInfo *diagnosticInfos; } UA_CreateMonitoredItemsResponse; #define UA_TYPES_CREATEMONITOREDITEMSRESPONSE 123 static UA_INLINE void UA_CreateMonitoredItemsResponse_init(UA_CreateMonitoredItemsResponse *p) { memset(p, 0, sizeof(UA_CreateMonitoredItemsResponse)); } static UA_INLINE UA_CreateMonitoredItemsResponse * UA_CreateMonitoredItemsResponse_new(void) { return (UA_CreateMonitoredItemsResponse*) UA_new(&UA_TYPES[UA_TYPES_CREATEMONITOREDITEMSRESPONSE]); } static UA_INLINE UA_StatusCode UA_CreateMonitoredItemsResponse_copy(const UA_CreateMonitoredItemsResponse *src, UA_CreateMonitoredItemsResponse *dst) { return UA_copy(src, dst, &UA_TYPES[UA_TYPES_CREATEMONITOREDITEMSRESPONSE]); } static UA_INLINE void UA_CreateMonitoredItemsResponse_deleteMembers(UA_CreateMonitoredItemsResponse *p) { UA_deleteMembers(p, &UA_TYPES[UA_TYPES_CREATEMONITOREDITEMSRESPONSE]); } static UA_INLINE void UA_CreateMonitoredItemsResponse_delete(UA_CreateMonitoredItemsResponse *p) { UA_delete(p, &UA_TYPES[UA_TYPES_CREATEMONITOREDITEMSRESPONSE]); } /** * CallResponse * ------------ */ typedef struct { UA_ResponseHeader responseHeader; size_t resultsSize; UA_CallMethodResult *results; size_t diagnosticInfosSize; UA_DiagnosticInfo *diagnosticInfos; } UA_CallResponse; #define UA_TYPES_CALLRESPONSE 124 static UA_INLINE void UA_CallResponse_init(UA_CallResponse *p) { memset(p, 0, sizeof(UA_CallResponse)); } static UA_INLINE UA_CallResponse * UA_CallResponse_new(void) { return (UA_CallResponse*) UA_new(&UA_TYPES[UA_TYPES_CALLRESPONSE]); } static UA_INLINE UA_StatusCode UA_CallResponse_copy(const UA_CallResponse *src, UA_CallResponse *dst) { return UA_copy(src, dst, &UA_TYPES[UA_TYPES_CALLRESPONSE]); } static UA_INLINE void UA_CallResponse_deleteMembers(UA_CallResponse *p) { UA_deleteMembers(p, &UA_TYPES[UA_TYPES_CALLRESPONSE]); } static UA_INLINE void UA_CallResponse_delete(UA_CallResponse *p) { UA_delete(p, &UA_TYPES[UA_TYPES_CALLRESPONSE]); } /** * DeleteNodesResponse * ------------------- * Delete one or more nodes from the server address space. */ typedef struct { UA_ResponseHeader responseHeader; size_t resultsSize; UA_StatusCode *results; size_t diagnosticInfosSize; UA_DiagnosticInfo *diagnosticInfos; } UA_DeleteNodesResponse; #define UA_TYPES_DELETENODESRESPONSE 125 static UA_INLINE void UA_DeleteNodesResponse_init(UA_DeleteNodesResponse *p) { memset(p, 0, sizeof(UA_DeleteNodesResponse)); } static UA_INLINE UA_DeleteNodesResponse * UA_DeleteNodesResponse_new(void) { return (UA_DeleteNodesResponse*) UA_new(&UA_TYPES[UA_TYPES_DELETENODESRESPONSE]); } static UA_INLINE UA_StatusCode UA_DeleteNodesResponse_copy(const UA_DeleteNodesResponse *src, UA_DeleteNodesResponse *dst) { return UA_copy(src, dst, &UA_TYPES[UA_TYPES_DELETENODESRESPONSE]); } static UA_INLINE void UA_DeleteNodesResponse_deleteMembers(UA_DeleteNodesResponse *p) { UA_deleteMembers(p, &UA_TYPES[UA_TYPES_DELETENODESRESPONSE]); } static UA_INLINE void UA_DeleteNodesResponse_delete(UA_DeleteNodesResponse *p) { UA_delete(p, &UA_TYPES[UA_TYPES_DELETENODESRESPONSE]); } /** * RepublishResponse * ----------------- */ typedef struct { UA_ResponseHeader responseHeader; UA_NotificationMessage notificationMessage; } UA_RepublishResponse; #define UA_TYPES_REPUBLISHRESPONSE 126 static UA_INLINE void UA_RepublishResponse_init(UA_RepublishResponse *p) { memset(p, 0, sizeof(UA_RepublishResponse)); } static UA_INLINE UA_RepublishResponse * UA_RepublishResponse_new(void) { return (UA_RepublishResponse*) UA_new(&UA_TYPES[UA_TYPES_REPUBLISHRESPONSE]); } static UA_INLINE UA_StatusCode UA_RepublishResponse_copy(const UA_RepublishResponse *src, UA_RepublishResponse *dst) { return UA_copy(src, dst, &UA_TYPES[UA_TYPES_REPUBLISHRESPONSE]); } static UA_INLINE void UA_RepublishResponse_deleteMembers(UA_RepublishResponse *p) { UA_deleteMembers(p, &UA_TYPES[UA_TYPES_REPUBLISHRESPONSE]); } static UA_INLINE void UA_RepublishResponse_delete(UA_RepublishResponse *p) { UA_delete(p, &UA_TYPES[UA_TYPES_REPUBLISHRESPONSE]); } /** * MonitoredItemCreateRequest * -------------------------- */ typedef struct { UA_ReadValueId itemToMonitor; UA_MonitoringMode monitoringMode; UA_MonitoringParameters requestedParameters; } UA_MonitoredItemCreateRequest; #define UA_TYPES_MONITOREDITEMCREATEREQUEST 127 static UA_INLINE void UA_MonitoredItemCreateRequest_init(UA_MonitoredItemCreateRequest *p) { memset(p, 0, sizeof(UA_MonitoredItemCreateRequest)); } static UA_INLINE UA_MonitoredItemCreateRequest * UA_MonitoredItemCreateRequest_new(void) { return (UA_MonitoredItemCreateRequest*) UA_new(&UA_TYPES[UA_TYPES_MONITOREDITEMCREATEREQUEST]); } static UA_INLINE UA_StatusCode UA_MonitoredItemCreateRequest_copy(const UA_MonitoredItemCreateRequest *src, UA_MonitoredItemCreateRequest *dst) { return UA_copy(src, dst, &UA_TYPES[UA_TYPES_MONITOREDITEMCREATEREQUEST]); } static UA_INLINE void UA_MonitoredItemCreateRequest_deleteMembers(UA_MonitoredItemCreateRequest *p) { UA_deleteMembers(p, &UA_TYPES[UA_TYPES_MONITOREDITEMCREATEREQUEST]); } static UA_INLINE void UA_MonitoredItemCreateRequest_delete(UA_MonitoredItemCreateRequest *p) { UA_delete(p, &UA_TYPES[UA_TYPES_MONITOREDITEMCREATEREQUEST]); } /** * DeleteReferencesRequest * ----------------------- * Delete one or more references from the server address space. */ typedef struct { UA_RequestHeader requestHeader; size_t referencesToDeleteSize; UA_DeleteReferencesItem *referencesToDelete; } UA_DeleteReferencesRequest; #define UA_TYPES_DELETEREFERENCESREQUEST 128 static UA_INLINE void UA_DeleteReferencesRequest_init(UA_DeleteReferencesRequest *p) { memset(p, 0, sizeof(UA_DeleteReferencesRequest)); } static UA_INLINE UA_DeleteReferencesRequest * UA_DeleteReferencesRequest_new(void) { return (UA_DeleteReferencesRequest*) UA_new(&UA_TYPES[UA_TYPES_DELETEREFERENCESREQUEST]); } static UA_INLINE UA_StatusCode UA_DeleteReferencesRequest_copy(const UA_DeleteReferencesRequest *src, UA_DeleteReferencesRequest *dst) { return UA_copy(src, dst, &UA_TYPES[UA_TYPES_DELETEREFERENCESREQUEST]); } static UA_INLINE void UA_DeleteReferencesRequest_deleteMembers(UA_DeleteReferencesRequest *p) { UA_deleteMembers(p, &UA_TYPES[UA_TYPES_DELETEREFERENCESREQUEST]); } static UA_INLINE void UA_DeleteReferencesRequest_delete(UA_DeleteReferencesRequest *p) { UA_delete(p, &UA_TYPES[UA_TYPES_DELETEREFERENCESREQUEST]); } /** * ModifyMonitoredItemsResponse * ---------------------------- */ typedef struct { UA_ResponseHeader responseHeader; size_t resultsSize; UA_MonitoredItemModifyResult *results; size_t diagnosticInfosSize; UA_DiagnosticInfo *diagnosticInfos; } UA_ModifyMonitoredItemsResponse; #define UA_TYPES_MODIFYMONITOREDITEMSRESPONSE 129 static UA_INLINE void UA_ModifyMonitoredItemsResponse_init(UA_ModifyMonitoredItemsResponse *p) { memset(p, 0, sizeof(UA_ModifyMonitoredItemsResponse)); } static UA_INLINE UA_ModifyMonitoredItemsResponse * UA_ModifyMonitoredItemsResponse_new(void) { return (UA_ModifyMonitoredItemsResponse*) UA_new(&UA_TYPES[UA_TYPES_MODIFYMONITOREDITEMSRESPONSE]); } static UA_INLINE UA_StatusCode UA_ModifyMonitoredItemsResponse_copy(const UA_ModifyMonitoredItemsResponse *src, UA_ModifyMonitoredItemsResponse *dst) { return UA_copy(src, dst, &UA_TYPES[UA_TYPES_MODIFYMONITOREDITEMSRESPONSE]); } static UA_INLINE void UA_ModifyMonitoredItemsResponse_deleteMembers(UA_ModifyMonitoredItemsResponse *p) { UA_deleteMembers(p, &UA_TYPES[UA_TYPES_MODIFYMONITOREDITEMSRESPONSE]); } static UA_INLINE void UA_ModifyMonitoredItemsResponse_delete(UA_ModifyMonitoredItemsResponse *p) { UA_delete(p, &UA_TYPES[UA_TYPES_MODIFYMONITOREDITEMSRESPONSE]); } /** * ReadResponse * ------------ */ typedef struct { UA_ResponseHeader responseHeader; size_t resultsSize; UA_DataValue *results; size_t diagnosticInfosSize; UA_DiagnosticInfo *diagnosticInfos; } UA_ReadResponse; #define UA_TYPES_READRESPONSE 130 static UA_INLINE void UA_ReadResponse_init(UA_ReadResponse *p) { memset(p, 0, sizeof(UA_ReadResponse)); } static UA_INLINE UA_ReadResponse * UA_ReadResponse_new(void) { return (UA_ReadResponse*) UA_new(&UA_TYPES[UA_TYPES_READRESPONSE]); } static UA_INLINE UA_StatusCode UA_ReadResponse_copy(const UA_ReadResponse *src, UA_ReadResponse *dst) { return UA_copy(src, dst, &UA_TYPES[UA_TYPES_READRESPONSE]); } static UA_INLINE void UA_ReadResponse_deleteMembers(UA_ReadResponse *p) { UA_deleteMembers(p, &UA_TYPES[UA_TYPES_READRESPONSE]); } static UA_INLINE void UA_ReadResponse_delete(UA_ReadResponse *p) { UA_delete(p, &UA_TYPES[UA_TYPES_READRESPONSE]); } /** * AddReferencesRequest * -------------------- * Adds one or more references to the server address space. */ typedef struct { UA_RequestHeader requestHeader; size_t referencesToAddSize; UA_AddReferencesItem *referencesToAdd; } UA_AddReferencesRequest; #define UA_TYPES_ADDREFERENCESREQUEST 131 static UA_INLINE void UA_AddReferencesRequest_init(UA_AddReferencesRequest *p) { memset(p, 0, sizeof(UA_AddReferencesRequest)); } static UA_INLINE UA_AddReferencesRequest * UA_AddReferencesRequest_new(void) { return (UA_AddReferencesRequest*) UA_new(&UA_TYPES[UA_TYPES_ADDREFERENCESREQUEST]); } static UA_INLINE UA_StatusCode UA_AddReferencesRequest_copy(const UA_AddReferencesRequest *src, UA_AddReferencesRequest *dst) { return UA_copy(src, dst, &UA_TYPES[UA_TYPES_ADDREFERENCESREQUEST]); } static UA_INLINE void UA_AddReferencesRequest_deleteMembers(UA_AddReferencesRequest *p) { UA_deleteMembers(p, &UA_TYPES[UA_TYPES_ADDREFERENCESREQUEST]); } static UA_INLINE void UA_AddReferencesRequest_delete(UA_AddReferencesRequest *p) { UA_delete(p, &UA_TYPES[UA_TYPES_ADDREFERENCESREQUEST]); } /** * ReadRequest * ----------- */ typedef struct { UA_RequestHeader requestHeader; UA_Double maxAge; UA_TimestampsToReturn timestampsToReturn; size_t nodesToReadSize; UA_ReadValueId *nodesToRead; } UA_ReadRequest; #define UA_TYPES_READREQUEST 132 static UA_INLINE void UA_ReadRequest_init(UA_ReadRequest *p) { memset(p, 0, sizeof(UA_ReadRequest)); } static UA_INLINE UA_ReadRequest * UA_ReadRequest_new(void) { return (UA_ReadRequest*) UA_new(&UA_TYPES[UA_TYPES_READREQUEST]); } static UA_INLINE UA_StatusCode UA_ReadRequest_copy(const UA_ReadRequest *src, UA_ReadRequest *dst) { return UA_copy(src, dst, &UA_TYPES[UA_TYPES_READREQUEST]); } static UA_INLINE void UA_ReadRequest_deleteMembers(UA_ReadRequest *p) { UA_deleteMembers(p, &UA_TYPES[UA_TYPES_READREQUEST]); } static UA_INLINE void UA_ReadRequest_delete(UA_ReadRequest *p) { UA_delete(p, &UA_TYPES[UA_TYPES_READREQUEST]); } /** * OpenSecureChannelRequest * ------------------------ * Creates a secure channel with a server. */ typedef struct { UA_RequestHeader requestHeader; UA_UInt32 clientProtocolVersion; UA_SecurityTokenRequestType requestType; UA_MessageSecurityMode securityMode; UA_ByteString clientNonce; UA_UInt32 requestedLifetime; } UA_OpenSecureChannelRequest; #define UA_TYPES_OPENSECURECHANNELREQUEST 133 static UA_INLINE void UA_OpenSecureChannelRequest_init(UA_OpenSecureChannelRequest *p) { memset(p, 0, sizeof(UA_OpenSecureChannelRequest)); } static UA_INLINE UA_OpenSecureChannelRequest * UA_OpenSecureChannelRequest_new(void) { return (UA_OpenSecureChannelRequest*) UA_new(&UA_TYPES[UA_TYPES_OPENSECURECHANNELREQUEST]); } static UA_INLINE UA_StatusCode UA_OpenSecureChannelRequest_copy(const UA_OpenSecureChannelRequest *src, UA_OpenSecureChannelRequest *dst) { return UA_copy(src, dst, &UA_TYPES[UA_TYPES_OPENSECURECHANNELREQUEST]); } static UA_INLINE void UA_OpenSecureChannelRequest_deleteMembers(UA_OpenSecureChannelRequest *p) { UA_deleteMembers(p, &UA_TYPES[UA_TYPES_OPENSECURECHANNELREQUEST]); } static UA_INLINE void UA_OpenSecureChannelRequest_delete(UA_OpenSecureChannelRequest *p) { UA_delete(p, &UA_TYPES[UA_TYPES_OPENSECURECHANNELREQUEST]); } /** * AddNodesItem * ------------ * A request to add a node to the server address space. */ typedef struct { UA_ExpandedNodeId parentNodeId; UA_NodeId referenceTypeId; UA_ExpandedNodeId requestedNewNodeId; UA_QualifiedName browseName; UA_NodeClass nodeClass; UA_ExtensionObject nodeAttributes; UA_ExpandedNodeId typeDefinition; } UA_AddNodesItem; #define UA_TYPES_ADDNODESITEM 134 static UA_INLINE void UA_AddNodesItem_init(UA_AddNodesItem *p) { memset(p, 0, sizeof(UA_AddNodesItem)); } static UA_INLINE UA_AddNodesItem * UA_AddNodesItem_new(void) { return (UA_AddNodesItem*) UA_new(&UA_TYPES[UA_TYPES_ADDNODESITEM]); } static UA_INLINE UA_StatusCode UA_AddNodesItem_copy(const UA_AddNodesItem *src, UA_AddNodesItem *dst) { return UA_copy(src, dst, &UA_TYPES[UA_TYPES_ADDNODESITEM]); } static UA_INLINE void UA_AddNodesItem_deleteMembers(UA_AddNodesItem *p) { UA_deleteMembers(p, &UA_TYPES[UA_TYPES_ADDNODESITEM]); } static UA_INLINE void UA_AddNodesItem_delete(UA_AddNodesItem *p) { UA_delete(p, &UA_TYPES[UA_TYPES_ADDNODESITEM]); } /** * ApplicationDescription * ---------------------- * Describes an application and how to find it. */ typedef struct { UA_String applicationUri; UA_String productUri; UA_LocalizedText applicationName; UA_ApplicationType applicationType; UA_String gatewayServerUri; UA_String discoveryProfileUri; size_t discoveryUrlsSize; UA_String *discoveryUrls; } UA_ApplicationDescription; #define UA_TYPES_APPLICATIONDESCRIPTION 135 static UA_INLINE void UA_ApplicationDescription_init(UA_ApplicationDescription *p) { memset(p, 0, sizeof(UA_ApplicationDescription)); } static UA_INLINE UA_ApplicationDescription * UA_ApplicationDescription_new(void) { return (UA_ApplicationDescription*) UA_new(&UA_TYPES[UA_TYPES_APPLICATIONDESCRIPTION]); } static UA_INLINE UA_StatusCode UA_ApplicationDescription_copy(const UA_ApplicationDescription *src, UA_ApplicationDescription *dst) { return UA_copy(src, dst, &UA_TYPES[UA_TYPES_APPLICATIONDESCRIPTION]); } static UA_INLINE void UA_ApplicationDescription_deleteMembers(UA_ApplicationDescription *p) { UA_deleteMembers(p, &UA_TYPES[UA_TYPES_APPLICATIONDESCRIPTION]); } static UA_INLINE void UA_ApplicationDescription_delete(UA_ApplicationDescription *p) { UA_delete(p, &UA_TYPES[UA_TYPES_APPLICATIONDESCRIPTION]); } /** * NodeTypeDescription * ------------------- */ typedef struct { UA_ExpandedNodeId typeDefinitionNode; UA_Boolean includeSubTypes; size_t dataToReturnSize; UA_QueryDataDescription *dataToReturn; } UA_NodeTypeDescription; #define UA_TYPES_NODETYPEDESCRIPTION 136 static UA_INLINE void UA_NodeTypeDescription_init(UA_NodeTypeDescription *p) { memset(p, 0, sizeof(UA_NodeTypeDescription)); } static UA_INLINE UA_NodeTypeDescription * UA_NodeTypeDescription_new(void) { return (UA_NodeTypeDescription*) UA_new(&UA_TYPES[UA_TYPES_NODETYPEDESCRIPTION]); } static UA_INLINE UA_StatusCode UA_NodeTypeDescription_copy(const UA_NodeTypeDescription *src, UA_NodeTypeDescription *dst) { return UA_copy(src, dst, &UA_TYPES[UA_TYPES_NODETYPEDESCRIPTION]); } static UA_INLINE void UA_NodeTypeDescription_deleteMembers(UA_NodeTypeDescription *p) { UA_deleteMembers(p, &UA_TYPES[UA_TYPES_NODETYPEDESCRIPTION]); } static UA_INLINE void UA_NodeTypeDescription_delete(UA_NodeTypeDescription *p) { UA_delete(p, &UA_TYPES[UA_TYPES_NODETYPEDESCRIPTION]); } /** * FindServersResponse * ------------------- * Finds the servers known to the discovery server. */ typedef struct { UA_ResponseHeader responseHeader; size_t serversSize; UA_ApplicationDescription *servers; } UA_FindServersResponse; #define UA_TYPES_FINDSERVERSRESPONSE 137 static UA_INLINE void UA_FindServersResponse_init(UA_FindServersResponse *p) { memset(p, 0, sizeof(UA_FindServersResponse)); } static UA_INLINE UA_FindServersResponse * UA_FindServersResponse_new(void) { return (UA_FindServersResponse*) UA_new(&UA_TYPES[UA_TYPES_FINDSERVERSRESPONSE]); } static UA_INLINE UA_StatusCode UA_FindServersResponse_copy(const UA_FindServersResponse *src, UA_FindServersResponse *dst) { return UA_copy(src, dst, &UA_TYPES[UA_TYPES_FINDSERVERSRESPONSE]); } static UA_INLINE void UA_FindServersResponse_deleteMembers(UA_FindServersResponse *p) { UA_deleteMembers(p, &UA_TYPES[UA_TYPES_FINDSERVERSRESPONSE]); } static UA_INLINE void UA_FindServersResponse_delete(UA_FindServersResponse *p) { UA_delete(p, &UA_TYPES[UA_TYPES_FINDSERVERSRESPONSE]); } /** * ServerStatusDataType * -------------------- */ typedef struct { UA_DateTime startTime; UA_DateTime currentTime; UA_ServerState state; UA_BuildInfo buildInfo; UA_UInt32 secondsTillShutdown; UA_LocalizedText shutdownReason; } UA_ServerStatusDataType; #define UA_TYPES_SERVERSTATUSDATATYPE 138 static UA_INLINE void UA_ServerStatusDataType_init(UA_ServerStatusDataType *p) { memset(p, 0, sizeof(UA_ServerStatusDataType)); } static UA_INLINE UA_ServerStatusDataType * UA_ServerStatusDataType_new(void) { return (UA_ServerStatusDataType*) UA_new(&UA_TYPES[UA_TYPES_SERVERSTATUSDATATYPE]); } static UA_INLINE UA_StatusCode UA_ServerStatusDataType_copy(const UA_ServerStatusDataType *src, UA_ServerStatusDataType *dst) { return UA_copy(src, dst, &UA_TYPES[UA_TYPES_SERVERSTATUSDATATYPE]); } static UA_INLINE void UA_ServerStatusDataType_deleteMembers(UA_ServerStatusDataType *p) { UA_deleteMembers(p, &UA_TYPES[UA_TYPES_SERVERSTATUSDATATYPE]); } static UA_INLINE void UA_ServerStatusDataType_delete(UA_ServerStatusDataType *p) { UA_delete(p, &UA_TYPES[UA_TYPES_SERVERSTATUSDATATYPE]); } /** * AddReferencesResponse * --------------------- * Adds one or more references to the server address space. */ typedef struct { UA_ResponseHeader responseHeader; size_t resultsSize; UA_StatusCode *results; size_t diagnosticInfosSize; UA_DiagnosticInfo *diagnosticInfos; } UA_AddReferencesResponse; #define UA_TYPES_ADDREFERENCESRESPONSE 139 static UA_INLINE void UA_AddReferencesResponse_init(UA_AddReferencesResponse *p) { memset(p, 0, sizeof(UA_AddReferencesResponse)); } static UA_INLINE UA_AddReferencesResponse * UA_AddReferencesResponse_new(void) { return (UA_AddReferencesResponse*) UA_new(&UA_TYPES[UA_TYPES_ADDREFERENCESRESPONSE]); } static UA_INLINE UA_StatusCode UA_AddReferencesResponse_copy(const UA_AddReferencesResponse *src, UA_AddReferencesResponse *dst) { return UA_copy(src, dst, &UA_TYPES[UA_TYPES_ADDREFERENCESRESPONSE]); } static UA_INLINE void UA_AddReferencesResponse_deleteMembers(UA_AddReferencesResponse *p) { UA_deleteMembers(p, &UA_TYPES[UA_TYPES_ADDREFERENCESRESPONSE]); } static UA_INLINE void UA_AddReferencesResponse_delete(UA_AddReferencesResponse *p) { UA_delete(p, &UA_TYPES[UA_TYPES_ADDREFERENCESRESPONSE]); } /** * TranslateBrowsePathsToNodeIdsResponse * ------------------------------------- * Translates one or more paths in the server address space. */ typedef struct { UA_ResponseHeader responseHeader; size_t resultsSize; UA_BrowsePathResult *results; size_t diagnosticInfosSize; UA_DiagnosticInfo *diagnosticInfos; } UA_TranslateBrowsePathsToNodeIdsResponse; #define UA_TYPES_TRANSLATEBROWSEPATHSTONODEIDSRESPONSE 140 static UA_INLINE void UA_TranslateBrowsePathsToNodeIdsResponse_init(UA_TranslateBrowsePathsToNodeIdsResponse *p) { memset(p, 0, sizeof(UA_TranslateBrowsePathsToNodeIdsResponse)); } static UA_INLINE UA_TranslateBrowsePathsToNodeIdsResponse * UA_TranslateBrowsePathsToNodeIdsResponse_new(void) { return (UA_TranslateBrowsePathsToNodeIdsResponse*) UA_new(&UA_TYPES[UA_TYPES_TRANSLATEBROWSEPATHSTONODEIDSRESPONSE]); } static UA_INLINE UA_StatusCode UA_TranslateBrowsePathsToNodeIdsResponse_copy(const UA_TranslateBrowsePathsToNodeIdsResponse *src, UA_TranslateBrowsePathsToNodeIdsResponse *dst) { return UA_copy(src, dst, &UA_TYPES[UA_TYPES_TRANSLATEBROWSEPATHSTONODEIDSRESPONSE]); } static UA_INLINE void UA_TranslateBrowsePathsToNodeIdsResponse_deleteMembers(UA_TranslateBrowsePathsToNodeIdsResponse *p) { UA_deleteMembers(p, &UA_TYPES[UA_TYPES_TRANSLATEBROWSEPATHSTONODEIDSRESPONSE]); } static UA_INLINE void UA_TranslateBrowsePathsToNodeIdsResponse_delete(UA_TranslateBrowsePathsToNodeIdsResponse *p) { UA_delete(p, &UA_TYPES[UA_TYPES_TRANSLATEBROWSEPATHSTONODEIDSRESPONSE]); } /** * ContentFilterElement * -------------------- */ typedef struct { UA_FilterOperator filterOperator; size_t filterOperandsSize; UA_ExtensionObject *filterOperands; } UA_ContentFilterElement; #define UA_TYPES_CONTENTFILTERELEMENT 141 static UA_INLINE void UA_ContentFilterElement_init(UA_ContentFilterElement *p) { memset(p, 0, sizeof(UA_ContentFilterElement)); } static UA_INLINE UA_ContentFilterElement * UA_ContentFilterElement_new(void) { return (UA_ContentFilterElement*) UA_new(&UA_TYPES[UA_TYPES_CONTENTFILTERELEMENT]); } static UA_INLINE UA_StatusCode UA_ContentFilterElement_copy(const UA_ContentFilterElement *src, UA_ContentFilterElement *dst) { return UA_copy(src, dst, &UA_TYPES[UA_TYPES_CONTENTFILTERELEMENT]); } static UA_INLINE void UA_ContentFilterElement_deleteMembers(UA_ContentFilterElement *p) { UA_deleteMembers(p, &UA_TYPES[UA_TYPES_CONTENTFILTERELEMENT]); } static UA_INLINE void UA_ContentFilterElement_delete(UA_ContentFilterElement *p) { UA_delete(p, &UA_TYPES[UA_TYPES_CONTENTFILTERELEMENT]); } /** * TranslateBrowsePathsToNodeIdsRequest * ------------------------------------ * Translates one or more paths in the server address space. */ typedef struct { UA_RequestHeader requestHeader; size_t browsePathsSize; UA_BrowsePath *browsePaths; } UA_TranslateBrowsePathsToNodeIdsRequest; #define UA_TYPES_TRANSLATEBROWSEPATHSTONODEIDSREQUEST 142 static UA_INLINE void UA_TranslateBrowsePathsToNodeIdsRequest_init(UA_TranslateBrowsePathsToNodeIdsRequest *p) { memset(p, 0, sizeof(UA_TranslateBrowsePathsToNodeIdsRequest)); } static UA_INLINE UA_TranslateBrowsePathsToNodeIdsRequest * UA_TranslateBrowsePathsToNodeIdsRequest_new(void) { return (UA_TranslateBrowsePathsToNodeIdsRequest*) UA_new(&UA_TYPES[UA_TYPES_TRANSLATEBROWSEPATHSTONODEIDSREQUEST]); } static UA_INLINE UA_StatusCode UA_TranslateBrowsePathsToNodeIdsRequest_copy(const UA_TranslateBrowsePathsToNodeIdsRequest *src, UA_TranslateBrowsePathsToNodeIdsRequest *dst) { return UA_copy(src, dst, &UA_TYPES[UA_TYPES_TRANSLATEBROWSEPATHSTONODEIDSREQUEST]); } static UA_INLINE void UA_TranslateBrowsePathsToNodeIdsRequest_deleteMembers(UA_TranslateBrowsePathsToNodeIdsRequest *p) { UA_deleteMembers(p, &UA_TYPES[UA_TYPES_TRANSLATEBROWSEPATHSTONODEIDSREQUEST]); } static UA_INLINE void UA_TranslateBrowsePathsToNodeIdsRequest_delete(UA_TranslateBrowsePathsToNodeIdsRequest *p) { UA_delete(p, &UA_TYPES[UA_TYPES_TRANSLATEBROWSEPATHSTONODEIDSREQUEST]); } /** * CloseSessionResponse * -------------------- * Closes a session with the server. */ typedef struct { UA_ResponseHeader responseHeader; } UA_CloseSessionResponse; #define UA_TYPES_CLOSESESSIONRESPONSE 143 static UA_INLINE void UA_CloseSessionResponse_init(UA_CloseSessionResponse *p) { memset(p, 0, sizeof(UA_CloseSessionResponse)); } static UA_INLINE UA_CloseSessionResponse * UA_CloseSessionResponse_new(void) { return (UA_CloseSessionResponse*) UA_new(&UA_TYPES[UA_TYPES_CLOSESESSIONRESPONSE]); } static UA_INLINE UA_StatusCode UA_CloseSessionResponse_copy(const UA_CloseSessionResponse *src, UA_CloseSessionResponse *dst) { return UA_copy(src, dst, &UA_TYPES[UA_TYPES_CLOSESESSIONRESPONSE]); } static UA_INLINE void UA_CloseSessionResponse_deleteMembers(UA_CloseSessionResponse *p) { UA_deleteMembers(p, &UA_TYPES[UA_TYPES_CLOSESESSIONRESPONSE]); } static UA_INLINE void UA_CloseSessionResponse_delete(UA_CloseSessionResponse *p) { UA_delete(p, &UA_TYPES[UA_TYPES_CLOSESESSIONRESPONSE]); } /** * ServiceFault * ------------ * The response returned by all services when there is a service level error. */ typedef struct { UA_ResponseHeader responseHeader; } UA_ServiceFault; #define UA_TYPES_SERVICEFAULT 144 static UA_INLINE void UA_ServiceFault_init(UA_ServiceFault *p) { memset(p, 0, sizeof(UA_ServiceFault)); } static UA_INLINE UA_ServiceFault * UA_ServiceFault_new(void) { return (UA_ServiceFault*) UA_new(&UA_TYPES[UA_TYPES_SERVICEFAULT]); } static UA_INLINE UA_StatusCode UA_ServiceFault_copy(const UA_ServiceFault *src, UA_ServiceFault *dst) { return UA_copy(src, dst, &UA_TYPES[UA_TYPES_SERVICEFAULT]); } static UA_INLINE void UA_ServiceFault_deleteMembers(UA_ServiceFault *p) { UA_deleteMembers(p, &UA_TYPES[UA_TYPES_SERVICEFAULT]); } static UA_INLINE void UA_ServiceFault_delete(UA_ServiceFault *p) { UA_delete(p, &UA_TYPES[UA_TYPES_SERVICEFAULT]); } /** * CreateMonitoredItemsRequest * --------------------------- */ typedef struct { UA_RequestHeader requestHeader; UA_UInt32 subscriptionId; UA_TimestampsToReturn timestampsToReturn; size_t itemsToCreateSize; UA_MonitoredItemCreateRequest *itemsToCreate; } UA_CreateMonitoredItemsRequest; #define UA_TYPES_CREATEMONITOREDITEMSREQUEST 145 static UA_INLINE void UA_CreateMonitoredItemsRequest_init(UA_CreateMonitoredItemsRequest *p) { memset(p, 0, sizeof(UA_CreateMonitoredItemsRequest)); } static UA_INLINE UA_CreateMonitoredItemsRequest * UA_CreateMonitoredItemsRequest_new(void) { return (UA_CreateMonitoredItemsRequest*) UA_new(&UA_TYPES[UA_TYPES_CREATEMONITOREDITEMSREQUEST]); } static UA_INLINE UA_StatusCode UA_CreateMonitoredItemsRequest_copy(const UA_CreateMonitoredItemsRequest *src, UA_CreateMonitoredItemsRequest *dst) { return UA_copy(src, dst, &UA_TYPES[UA_TYPES_CREATEMONITOREDITEMSREQUEST]); } static UA_INLINE void UA_CreateMonitoredItemsRequest_deleteMembers(UA_CreateMonitoredItemsRequest *p) { UA_deleteMembers(p, &UA_TYPES[UA_TYPES_CREATEMONITOREDITEMSREQUEST]); } static UA_INLINE void UA_CreateMonitoredItemsRequest_delete(UA_CreateMonitoredItemsRequest *p) { UA_delete(p, &UA_TYPES[UA_TYPES_CREATEMONITOREDITEMSREQUEST]); } /** * ContentFilter * ------------- */ typedef struct { size_t elementsSize; UA_ContentFilterElement *elements; } UA_ContentFilter; #define UA_TYPES_CONTENTFILTER 146 static UA_INLINE void UA_ContentFilter_init(UA_ContentFilter *p) { memset(p, 0, sizeof(UA_ContentFilter)); } static UA_INLINE UA_ContentFilter * UA_ContentFilter_new(void) { return (UA_ContentFilter*) UA_new(&UA_TYPES[UA_TYPES_CONTENTFILTER]); } static UA_INLINE UA_StatusCode UA_ContentFilter_copy(const UA_ContentFilter *src, UA_ContentFilter *dst) { return UA_copy(src, dst, &UA_TYPES[UA_TYPES_CONTENTFILTER]); } static UA_INLINE void UA_ContentFilter_deleteMembers(UA_ContentFilter *p) { UA_deleteMembers(p, &UA_TYPES[UA_TYPES_CONTENTFILTER]); } static UA_INLINE void UA_ContentFilter_delete(UA_ContentFilter *p) { UA_delete(p, &UA_TYPES[UA_TYPES_CONTENTFILTER]); } /** * QueryFirstResponse * ------------------ */ typedef struct { UA_ResponseHeader responseHeader; size_t queryDataSetsSize; UA_QueryDataSet *queryDataSets; UA_ByteString continuationPoint; size_t parsingResultsSize; UA_ParsingResult *parsingResults; size_t diagnosticInfosSize; UA_DiagnosticInfo *diagnosticInfos; UA_ContentFilterResult filterResult; } UA_QueryFirstResponse; #define UA_TYPES_QUERYFIRSTRESPONSE 147 static UA_INLINE void UA_QueryFirstResponse_init(UA_QueryFirstResponse *p) { memset(p, 0, sizeof(UA_QueryFirstResponse)); } static UA_INLINE UA_QueryFirstResponse * UA_QueryFirstResponse_new(void) { return (UA_QueryFirstResponse*) UA_new(&UA_TYPES[UA_TYPES_QUERYFIRSTRESPONSE]); } static UA_INLINE UA_StatusCode UA_QueryFirstResponse_copy(const UA_QueryFirstResponse *src, UA_QueryFirstResponse *dst) { return UA_copy(src, dst, &UA_TYPES[UA_TYPES_QUERYFIRSTRESPONSE]); } static UA_INLINE void UA_QueryFirstResponse_deleteMembers(UA_QueryFirstResponse *p) { UA_deleteMembers(p, &UA_TYPES[UA_TYPES_QUERYFIRSTRESPONSE]); } static UA_INLINE void UA_QueryFirstResponse_delete(UA_QueryFirstResponse *p) { UA_delete(p, &UA_TYPES[UA_TYPES_QUERYFIRSTRESPONSE]); } /** * AddNodesRequest * --------------- * Adds one or more nodes to the server address space. */ typedef struct { UA_RequestHeader requestHeader; size_t nodesToAddSize; UA_AddNodesItem *nodesToAdd; } UA_AddNodesRequest; #define UA_TYPES_ADDNODESREQUEST 148 static UA_INLINE void UA_AddNodesRequest_init(UA_AddNodesRequest *p) { memset(p, 0, sizeof(UA_AddNodesRequest)); } static UA_INLINE UA_AddNodesRequest * UA_AddNodesRequest_new(void) { return (UA_AddNodesRequest*) UA_new(&UA_TYPES[UA_TYPES_ADDNODESREQUEST]); } static UA_INLINE UA_StatusCode UA_AddNodesRequest_copy(const UA_AddNodesRequest *src, UA_AddNodesRequest *dst) { return UA_copy(src, dst, &UA_TYPES[UA_TYPES_ADDNODESREQUEST]); } static UA_INLINE void UA_AddNodesRequest_deleteMembers(UA_AddNodesRequest *p) { UA_deleteMembers(p, &UA_TYPES[UA_TYPES_ADDNODESREQUEST]); } static UA_INLINE void UA_AddNodesRequest_delete(UA_AddNodesRequest *p) { UA_delete(p, &UA_TYPES[UA_TYPES_ADDNODESREQUEST]); } /** * BrowseRequest * ------------- * Browse the references for one or more nodes from the server address space. */ typedef struct { UA_RequestHeader requestHeader; UA_ViewDescription view; UA_UInt32 requestedMaxReferencesPerNode; size_t nodesToBrowseSize; UA_BrowseDescription *nodesToBrowse; } UA_BrowseRequest; #define UA_TYPES_BROWSEREQUEST 149 static UA_INLINE void UA_BrowseRequest_init(UA_BrowseRequest *p) { memset(p, 0, sizeof(UA_BrowseRequest)); } static UA_INLINE UA_BrowseRequest * UA_BrowseRequest_new(void) { return (UA_BrowseRequest*) UA_new(&UA_TYPES[UA_TYPES_BROWSEREQUEST]); } static UA_INLINE UA_StatusCode UA_BrowseRequest_copy(const UA_BrowseRequest *src, UA_BrowseRequest *dst) { return UA_copy(src, dst, &UA_TYPES[UA_TYPES_BROWSEREQUEST]); } static UA_INLINE void UA_BrowseRequest_deleteMembers(UA_BrowseRequest *p) { UA_deleteMembers(p, &UA_TYPES[UA_TYPES_BROWSEREQUEST]); } static UA_INLINE void UA_BrowseRequest_delete(UA_BrowseRequest *p) { UA_delete(p, &UA_TYPES[UA_TYPES_BROWSEREQUEST]); } /** * BrowseResult * ------------ * The result of a browse operation. */ typedef struct { UA_StatusCode statusCode; UA_ByteString continuationPoint; size_t referencesSize; UA_ReferenceDescription *references; } UA_BrowseResult; #define UA_TYPES_BROWSERESULT 150 static UA_INLINE void UA_BrowseResult_init(UA_BrowseResult *p) { memset(p, 0, sizeof(UA_BrowseResult)); } static UA_INLINE UA_BrowseResult * UA_BrowseResult_new(void) { return (UA_BrowseResult*) UA_new(&UA_TYPES[UA_TYPES_BROWSERESULT]); } static UA_INLINE UA_StatusCode UA_BrowseResult_copy(const UA_BrowseResult *src, UA_BrowseResult *dst) { return UA_copy(src, dst, &UA_TYPES[UA_TYPES_BROWSERESULT]); } static UA_INLINE void UA_BrowseResult_deleteMembers(UA_BrowseResult *p) { UA_deleteMembers(p, &UA_TYPES[UA_TYPES_BROWSERESULT]); } static UA_INLINE void UA_BrowseResult_delete(UA_BrowseResult *p) { UA_delete(p, &UA_TYPES[UA_TYPES_BROWSERESULT]); } /** * CreateSessionRequest * -------------------- * Creates a new session with the server. */ typedef struct { UA_RequestHeader requestHeader; UA_ApplicationDescription clientDescription; UA_String serverUri; UA_String endpointUrl; UA_String sessionName; UA_ByteString clientNonce; UA_ByteString clientCertificate; UA_Double requestedSessionTimeout; UA_UInt32 maxResponseMessageSize; } UA_CreateSessionRequest; #define UA_TYPES_CREATESESSIONREQUEST 151 static UA_INLINE void UA_CreateSessionRequest_init(UA_CreateSessionRequest *p) { memset(p, 0, sizeof(UA_CreateSessionRequest)); } static UA_INLINE UA_CreateSessionRequest * UA_CreateSessionRequest_new(void) { return (UA_CreateSessionRequest*) UA_new(&UA_TYPES[UA_TYPES_CREATESESSIONREQUEST]); } static UA_INLINE UA_StatusCode UA_CreateSessionRequest_copy(const UA_CreateSessionRequest *src, UA_CreateSessionRequest *dst) { return UA_copy(src, dst, &UA_TYPES[UA_TYPES_CREATESESSIONREQUEST]); } static UA_INLINE void UA_CreateSessionRequest_deleteMembers(UA_CreateSessionRequest *p) { UA_deleteMembers(p, &UA_TYPES[UA_TYPES_CREATESESSIONREQUEST]); } static UA_INLINE void UA_CreateSessionRequest_delete(UA_CreateSessionRequest *p) { UA_delete(p, &UA_TYPES[UA_TYPES_CREATESESSIONREQUEST]); } /** * EndpointDescription * ------------------- * The description of a endpoint that can be used to access a server. */ typedef struct { UA_String endpointUrl; UA_ApplicationDescription server; UA_ByteString serverCertificate; UA_MessageSecurityMode securityMode; UA_String securityPolicyUri; size_t userIdentityTokensSize; UA_UserTokenPolicy *userIdentityTokens; UA_String transportProfileUri; UA_Byte securityLevel; } UA_EndpointDescription; #define UA_TYPES_ENDPOINTDESCRIPTION 152 static UA_INLINE void UA_EndpointDescription_init(UA_EndpointDescription *p) { memset(p, 0, sizeof(UA_EndpointDescription)); } static UA_INLINE UA_EndpointDescription * UA_EndpointDescription_new(void) { return (UA_EndpointDescription*) UA_new(&UA_TYPES[UA_TYPES_ENDPOINTDESCRIPTION]); } static UA_INLINE UA_StatusCode UA_EndpointDescription_copy(const UA_EndpointDescription *src, UA_EndpointDescription *dst) { return UA_copy(src, dst, &UA_TYPES[UA_TYPES_ENDPOINTDESCRIPTION]); } static UA_INLINE void UA_EndpointDescription_deleteMembers(UA_EndpointDescription *p) { UA_deleteMembers(p, &UA_TYPES[UA_TYPES_ENDPOINTDESCRIPTION]); } static UA_INLINE void UA_EndpointDescription_delete(UA_EndpointDescription *p) { UA_delete(p, &UA_TYPES[UA_TYPES_ENDPOINTDESCRIPTION]); } /** * GetEndpointsResponse * -------------------- * Gets the endpoints used by the server. */ typedef struct { UA_ResponseHeader responseHeader; size_t endpointsSize; UA_EndpointDescription *endpoints; } UA_GetEndpointsResponse; #define UA_TYPES_GETENDPOINTSRESPONSE 153 static UA_INLINE void UA_GetEndpointsResponse_init(UA_GetEndpointsResponse *p) { memset(p, 0, sizeof(UA_GetEndpointsResponse)); } static UA_INLINE UA_GetEndpointsResponse * UA_GetEndpointsResponse_new(void) { return (UA_GetEndpointsResponse*) UA_new(&UA_TYPES[UA_TYPES_GETENDPOINTSRESPONSE]); } static UA_INLINE UA_StatusCode UA_GetEndpointsResponse_copy(const UA_GetEndpointsResponse *src, UA_GetEndpointsResponse *dst) { return UA_copy(src, dst, &UA_TYPES[UA_TYPES_GETENDPOINTSRESPONSE]); } static UA_INLINE void UA_GetEndpointsResponse_deleteMembers(UA_GetEndpointsResponse *p) { UA_deleteMembers(p, &UA_TYPES[UA_TYPES_GETENDPOINTSRESPONSE]); } static UA_INLINE void UA_GetEndpointsResponse_delete(UA_GetEndpointsResponse *p) { UA_delete(p, &UA_TYPES[UA_TYPES_GETENDPOINTSRESPONSE]); } /** * BrowseNextResponse * ------------------ * Continues one or more browse operations. */ typedef struct { UA_ResponseHeader responseHeader; size_t resultsSize; UA_BrowseResult *results; size_t diagnosticInfosSize; UA_DiagnosticInfo *diagnosticInfos; } UA_BrowseNextResponse; #define UA_TYPES_BROWSENEXTRESPONSE 154 static UA_INLINE void UA_BrowseNextResponse_init(UA_BrowseNextResponse *p) { memset(p, 0, sizeof(UA_BrowseNextResponse)); } static UA_INLINE UA_BrowseNextResponse * UA_BrowseNextResponse_new(void) { return (UA_BrowseNextResponse*) UA_new(&UA_TYPES[UA_TYPES_BROWSENEXTRESPONSE]); } static UA_INLINE UA_StatusCode UA_BrowseNextResponse_copy(const UA_BrowseNextResponse *src, UA_BrowseNextResponse *dst) { return UA_copy(src, dst, &UA_TYPES[UA_TYPES_BROWSENEXTRESPONSE]); } static UA_INLINE void UA_BrowseNextResponse_deleteMembers(UA_BrowseNextResponse *p) { UA_deleteMembers(p, &UA_TYPES[UA_TYPES_BROWSENEXTRESPONSE]); } static UA_INLINE void UA_BrowseNextResponse_delete(UA_BrowseNextResponse *p) { UA_delete(p, &UA_TYPES[UA_TYPES_BROWSENEXTRESPONSE]); } /** * BrowseResponse * -------------- * Browse the references for one or more nodes from the server address space. */ typedef struct { UA_ResponseHeader responseHeader; size_t resultsSize; UA_BrowseResult *results; size_t diagnosticInfosSize; UA_DiagnosticInfo *diagnosticInfos; } UA_BrowseResponse; #define UA_TYPES_BROWSERESPONSE 155 static UA_INLINE void UA_BrowseResponse_init(UA_BrowseResponse *p) { memset(p, 0, sizeof(UA_BrowseResponse)); } static UA_INLINE UA_BrowseResponse * UA_BrowseResponse_new(void) { return (UA_BrowseResponse*) UA_new(&UA_TYPES[UA_TYPES_BROWSERESPONSE]); } static UA_INLINE UA_StatusCode UA_BrowseResponse_copy(const UA_BrowseResponse *src, UA_BrowseResponse *dst) { return UA_copy(src, dst, &UA_TYPES[UA_TYPES_BROWSERESPONSE]); } static UA_INLINE void UA_BrowseResponse_deleteMembers(UA_BrowseResponse *p) { UA_deleteMembers(p, &UA_TYPES[UA_TYPES_BROWSERESPONSE]); } static UA_INLINE void UA_BrowseResponse_delete(UA_BrowseResponse *p) { UA_delete(p, &UA_TYPES[UA_TYPES_BROWSERESPONSE]); } /** * CreateSessionResponse * --------------------- * Creates a new session with the server. */ typedef struct { UA_ResponseHeader responseHeader; UA_NodeId sessionId; UA_NodeId authenticationToken; UA_Double revisedSessionTimeout; UA_ByteString serverNonce; UA_ByteString serverCertificate; size_t serverEndpointsSize; UA_EndpointDescription *serverEndpoints; size_t serverSoftwareCertificatesSize; UA_SignedSoftwareCertificate *serverSoftwareCertificates; UA_SignatureData serverSignature; UA_UInt32 maxRequestMessageSize; } UA_CreateSessionResponse; #define UA_TYPES_CREATESESSIONRESPONSE 156 static UA_INLINE void UA_CreateSessionResponse_init(UA_CreateSessionResponse *p) { memset(p, 0, sizeof(UA_CreateSessionResponse)); } static UA_INLINE UA_CreateSessionResponse * UA_CreateSessionResponse_new(void) { return (UA_CreateSessionResponse*) UA_new(&UA_TYPES[UA_TYPES_CREATESESSIONRESPONSE]); } static UA_INLINE UA_StatusCode UA_CreateSessionResponse_copy(const UA_CreateSessionResponse *src, UA_CreateSessionResponse *dst) { return UA_copy(src, dst, &UA_TYPES[UA_TYPES_CREATESESSIONRESPONSE]); } static UA_INLINE void UA_CreateSessionResponse_deleteMembers(UA_CreateSessionResponse *p) { UA_deleteMembers(p, &UA_TYPES[UA_TYPES_CREATESESSIONRESPONSE]); } static UA_INLINE void UA_CreateSessionResponse_delete(UA_CreateSessionResponse *p) { UA_delete(p, &UA_TYPES[UA_TYPES_CREATESESSIONRESPONSE]); } /** * QueryFirstRequest * ----------------- */ typedef struct { UA_RequestHeader requestHeader; UA_ViewDescription view; size_t nodeTypesSize; UA_NodeTypeDescription *nodeTypes; UA_ContentFilter filter; UA_UInt32 maxDataSetsToReturn; UA_UInt32 maxReferencesToReturn; } UA_QueryFirstRequest; #define UA_TYPES_QUERYFIRSTREQUEST 157 static UA_INLINE void UA_QueryFirstRequest_init(UA_QueryFirstRequest *p) { memset(p, 0, sizeof(UA_QueryFirstRequest)); } static UA_INLINE UA_QueryFirstRequest * UA_QueryFirstRequest_new(void) { return (UA_QueryFirstRequest*) UA_new(&UA_TYPES[UA_TYPES_QUERYFIRSTREQUEST]); } static UA_INLINE UA_StatusCode UA_QueryFirstRequest_copy(const UA_QueryFirstRequest *src, UA_QueryFirstRequest *dst) { return UA_copy(src, dst, &UA_TYPES[UA_TYPES_QUERYFIRSTREQUEST]); } static UA_INLINE void UA_QueryFirstRequest_deleteMembers(UA_QueryFirstRequest *p) { UA_deleteMembers(p, &UA_TYPES[UA_TYPES_QUERYFIRSTREQUEST]); } static UA_INLINE void UA_QueryFirstRequest_delete(UA_QueryFirstRequest *p) { UA_delete(p, &UA_TYPES[UA_TYPES_QUERYFIRSTREQUEST]); } #ifdef __cplusplus } // extern "C" #endif /*********************************** amalgamated original file "/home/wn/Sources/open62541-open62541-395ce48/include/ua_connection.h" ***********************************/ /* * Copyright (C) 2014-2016 the contributors as stated in the AUTHORS file * * This file is part of open62541. open62541 is free software: you can * redistribute it and/or modify it under the terms of the GNU Lesser General * Public License, version 3 (as published by the Free Software Foundation) with * a static linking exception as stated in the LICENSE file provided with * open62541. * * open62541 is distributed in the hope that it will be useful, but WITHOUT ANY * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR * A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more * details. */ #ifdef __cplusplus extern "C" { #endif /* Forward declarations */ struct UA_Connection; typedef struct UA_Connection UA_Connection; struct UA_SecureChannel; typedef struct UA_SecureChannel UA_SecureChannel; /** * Networking * ---------- * Client-server connection is represented by a `UA_Connection` structure. In * order to allow for different operating systems and connection types. For * this, `UA_Connection` stores a pointer to user-defined data and * function-pointers to interact with the underlying networking implementation. * * An example networklayer for TCP communication is contained in the plugins * folder. The networklayer forwards messages with `UA_Connection` structures to * the main open62541 library. The library can then return messages vie TCP * without being aware of the underlying transport technology. * * Connection Config * ================= */ typedef struct UA_ConnectionConfig { UA_UInt32 protocolVersion; UA_UInt32 sendBufferSize; UA_UInt32 recvBufferSize; UA_UInt32 maxMessageSize; UA_UInt32 maxChunkCount; } UA_ConnectionConfig; extern const UA_EXPORT UA_ConnectionConfig UA_ConnectionConfig_standard; /** * Connection Structure * ==================== */ typedef enum UA_ConnectionState { UA_CONNECTION_OPENING, /* The socket is open, but the HEL/ACK handshake is not done */ UA_CONNECTION_ESTABLISHED, /* The socket is open and the connection configured */ UA_CONNECTION_CLOSED, /* The socket has been closed and the connection will be deleted */ } UA_ConnectionState; struct UA_Connection { UA_ConnectionState state; UA_ConnectionConfig localConf; UA_ConnectionConfig remoteConf; UA_SecureChannel *channel; /* The securechannel that is attached to this connection */ UA_Int32 sockfd; /* Most connectivity solutions run on sockets. Having the socket id here simplifies the design. */ void *handle; /* A pointer to the networklayer */ UA_ByteString incompleteMessage; /* A half-received message (TCP is a streaming protocol) is stored here */ /* Get a buffer for sending */ UA_StatusCode (*getSendBuffer)(UA_Connection *connection, size_t length, UA_ByteString *buf); /* Release the send buffer manually */ void (*releaseSendBuffer)(UA_Connection *connection, UA_ByteString *buf); /* Sends a message over the connection. The message buffer is always freed, * even if sending fails. * * @param connection The connection * @param buf The message buffer * @return Returns an error code or UA_STATUSCODE_GOOD. */ UA_StatusCode (*send)(UA_Connection *connection, UA_ByteString *buf); /* Receive a message from the remote connection * * @param connection The connection * @param response The response string. It is allocated by the connection * and needs to be freed with connection->releaseBuffer * @param timeout Timeout of the recv operation in milliseconds * @return Returns UA_STATUSCODE_BADCOMMUNICATIONERROR if the recv operation * can be repeated, UA_STATUSCODE_GOOD if it succeeded and * UA_STATUSCODE_BADCONNECTIONCLOSED if the connection was * closed. */ UA_StatusCode (*recv)(UA_Connection *connection, UA_ByteString *response, UA_UInt32 timeout); /* Release the buffer of a received message */ void (*releaseRecvBuffer)(UA_Connection *connection, UA_ByteString *buf); /* Close the connection */ void (*close)(UA_Connection *connection); }; void UA_EXPORT UA_Connection_init(UA_Connection *connection); void UA_EXPORT UA_Connection_deleteMembers(UA_Connection *connection); #ifdef __cplusplus } // extern "C" #endif /*********************************** amalgamated original file "/home/wn/Sources/open62541-open62541-395ce48/include/ua_job.h" ***********************************/ /* * Copyright (C) 2014 the contributors as stated in the AUTHORS file * * This file is part of open62541. open62541 is free software: you can * redistribute it and/or modify it under the terms of the GNU Lesser General * Public License, version 3 (as published by the Free Software Foundation) with * a static linking exception as stated in the LICENSE file provided with * open62541. * * open62541 is distributed in the hope that it will be useful, but WITHOUT ANY * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR * A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more * details. */ #ifdef __cplusplus extern "C" { #endif struct UA_Server; typedef struct UA_Server UA_Server; typedef void (*UA_ServerCallback)(UA_Server *server, void *data); /** Jobs describe work that is executed once or repeatedly in the server */ typedef struct { enum { UA_JOBTYPE_NOTHING, ///< Guess what? UA_JOBTYPE_DETACHCONNECTION, ///< Detach the connection from the secure channel (but don't delete it) UA_JOBTYPE_BINARYMESSAGE_NETWORKLAYER, ///< The binary message is memory managed by the networklayer UA_JOBTYPE_BINARYMESSAGE_ALLOCATED, ///< The binary message was relocated away from the networklayer UA_JOBTYPE_METHODCALL, ///< Call the method as soon as possible UA_JOBTYPE_METHODCALL_DELAYED, ///< Call the method as soon as all previous jobs have finished } type; union { UA_Connection *closeConnection; struct { UA_Connection *connection; UA_ByteString message; } binaryMessage; struct { void *data; UA_ServerCallback method; } methodCall; } job; } UA_Job; #ifdef __cplusplus } // extern "C" #endif /*********************************** amalgamated original file "/home/wn/Sources/open62541-open62541-395ce48/include/ua_log.h" ***********************************/ /* * Copyright (C) 2014-2016 the contributors as stated in the AUTHORS file * * This file is part of open62541. open62541 is free software: you can * redistribute it and/or modify it under the terms of the GNU Lesser General * Public License, version 3 (as published by the Free Software Foundation) with * a static linking exception as stated in the LICENSE file provided with * open62541. * * open62541 is distributed in the hope that it will be useful, but WITHOUT ANY * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR * A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more * details. */ #ifdef __cplusplus extern "C" { #endif /** * Logging * ------- * Servers and clients may contain a logger. Every logger needs to implement the * `UA_Logger` signature. An example logger that writes to stdout is provided in * the plugins folder. * * Every log-message consists of a log-level, a log-category and a string * message content. The timestamp of the log-message is created within the * logger. */ typedef enum { UA_LOGLEVEL_TRACE, UA_LOGLEVEL_DEBUG, UA_LOGLEVEL_INFO, UA_LOGLEVEL_WARNING, UA_LOGLEVEL_ERROR, UA_LOGLEVEL_FATAL } UA_LogLevel; typedef enum { UA_LOGCATEGORY_NETWORK, UA_LOGCATEGORY_SECURECHANNEL, UA_LOGCATEGORY_SESSION, UA_LOGCATEGORY_SERVER, UA_LOGCATEGORY_CLIENT, UA_LOGCATEGORY_USERLAND } UA_LogCategory; /** * The signature of the logger. The msg string and following varargs are * formatted according to the rules of the printf command. * * Do not use the logger directly but make use of the following macros that take * the minimum log-level defined in ua_config.h into account. */ typedef void (*UA_Logger)(UA_LogLevel level, UA_LogCategory category, const char *msg, ...); #if UA_LOGLEVEL <= 100 #define UA_LOG_TRACE(LOGGER, CATEGORY, ...) do { \ if(LOGGER) LOGGER(UA_LOGLEVEL_TRACE, CATEGORY, __VA_ARGS__); } while(0) #else #define UA_LOG_TRACE(LOGGER, CATEGORY, ...) do {} while(0) #endif #if UA_LOGLEVEL <= 200 #define UA_LOG_DEBUG(LOGGER, CATEGORY, ...) do { \ if(LOGGER) LOGGER(UA_LOGLEVEL_DEBUG, CATEGORY, __VA_ARGS__); } while(0) #else #define UA_LOG_DEBUG(LOGGER, CATEGORY, ...) do {} while(0) #endif #if UA_LOGLEVEL <= 300 #define UA_LOG_INFO(LOGGER, CATEGORY, ...) do { \ if(LOGGER) LOGGER(UA_LOGLEVEL_INFO, CATEGORY, __VA_ARGS__); } while(0) #else #define UA_LOG_INFO(LOGGER, CATEGORY, ...) do {} while(0) #endif #if UA_LOGLEVEL <= 400 #define UA_LOG_WARNING(LOGGER, CATEGORY, ...) do { \ if(LOGGER) LOGGER(UA_LOGLEVEL_WARNING, CATEGORY, __VA_ARGS__); } while(0) #else #define UA_LOG_WARNING(LOGGER, CATEGORY, ...) do {} while(0) #endif #if UA_LOGLEVEL <= 500 #define UA_LOG_ERROR(LOGGER, CATEGORY, ...) do { \ if(LOGGER) LOGGER(UA_LOGLEVEL_ERROR, CATEGORY, __VA_ARGS__); } while(0) #else #define UA_LOG_ERROR(LOGGER, CATEGORY, ...) do {} while(0) #endif #if UA_LOGLEVEL <= 600 #define UA_LOG_FATAL(LOGGER, CATEGORY, ...) do { \ if(LOGGER) LOGGER(UA_LOGLEVEL_FATAL, CATEGORY, __VA_ARGS__); } while(0) #else #define UA_LOG_FATAL(LOGGER, CATEGORY, ...) do {} while(0) #endif #ifdef __cplusplus } // extern "C" #endif /*********************************** amalgamated original file "/home/wn/Sources/open62541-open62541-395ce48/include/ua_server.h" ***********************************/ /* * Copyright (C) 2014 the contributors as stated in the AUTHORS file * * This file is part of open62541. open62541 is free software: you can * redistribute it and/or modify it under the terms of the GNU Lesser General * Public License, version 3 (as published by the Free Software Foundation) with * a static linking exception as stated in the LICENSE file provided with * open62541. * * open62541 is distributed in the hope that it will be useful, but WITHOUT ANY * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR * A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more * details. */ #ifdef __cplusplus extern "C" { #endif /** * Server * ====== * * Network Layer * ------------- * Interface to the binary network layers. The functions in the network layer * are never called in parallel but only sequentially from the server's main * loop. So the network layer does not need to be thread-safe. */ struct UA_ServerNetworkLayer; typedef struct UA_ServerNetworkLayer UA_ServerNetworkLayer; struct UA_ServerNetworkLayer { void *handle; // pointer to internal data UA_String discoveryUrl; /* Starts listening on the the networklayer. * * @param nl The network layer * @param logger The logger * @return Returns UA_STATUSCODE_GOOD or an error code. */ UA_StatusCode (*start)(UA_ServerNetworkLayer *nl, UA_Logger logger); /* Gets called from the main server loop and returns the jobs (accumulated * messages and close events) for dispatch. * * @param nl The network layer * @param jobs When the returned integer is >0, *jobs points to an array of UA_Job of the * returned size. * @param timeout The timeout during which an event must arrive in microseconds * @return The size of the jobs array. If the result is negative, an error has occurred. */ size_t (*getJobs)(UA_ServerNetworkLayer *nl, UA_Job **jobs, UA_UInt16 timeout); /* Closes the network connection and returns all the jobs that need to be * finished before the network layer can be safely deleted. * * @param nl The network layer * @param jobs When the returned integer is >0, jobs points to an array of UA_Job of the * returned size. * @return The size of the jobs array. If the result is negative, an error has occurred. */ size_t (*stop)(UA_ServerNetworkLayer *nl, UA_Job **jobs); /** Deletes the network content. Call only after stopping. */ void (*deleteMembers)(UA_ServerNetworkLayer *nl); }; /** * Server Configuration * -------------------- * The following structure is passed to a new server for configuration. */ typedef struct { UA_String username; UA_String password; } UA_UsernamePasswordLogin; typedef struct { UA_UInt32 min; UA_UInt32 max; } UA_UInt32Range; typedef struct { UA_Double min; UA_Double max; } UA_DoubleRange; typedef struct { UA_UInt16 nThreads; // only if multithreading is enabled UA_Logger logger; UA_BuildInfo buildInfo; UA_ApplicationDescription applicationDescription; UA_ByteString serverCertificate; /* Networking */ size_t networkLayersSize; UA_ServerNetworkLayer *networkLayers; /* Login */ UA_Boolean enableAnonymousLogin; UA_Boolean enableUsernamePasswordLogin; size_t usernamePasswordLoginsSize; UA_UsernamePasswordLogin* usernamePasswordLogins; /* Limits for subscription settings */ UA_DoubleRange publishingIntervalLimits; UA_UInt32Range lifeTimeCountLimits; UA_UInt32Range keepAliveCountLimits; UA_UInt32 maxNotificationsPerPublish; /* Limits for monitoreditem settings */ UA_DoubleRange samplingIntervalLimits; UA_UInt32Range queueSizeLimits; } UA_ServerConfig; /** * Server Lifecycle * ---------------- */ UA_Server UA_EXPORT * UA_Server_new(const UA_ServerConfig config); void UA_EXPORT UA_Server_delete(UA_Server *server); /* Runs the main loop of the server. In each iteration, this calls into the * networklayers to see if jobs have arrived and checks if repeated jobs need to * be triggered. * * @param server The server object. * @param running The loop is run as long as *running is true. Otherwise, the server shuts down. * @return Returns the statuscode of the UA_Server_run_shutdown method */ UA_StatusCode UA_EXPORT UA_Server_run(UA_Server *server, volatile UA_Boolean *running); /* The prologue part of UA_Server_run (no need to use if you call UA_Server_run) */ UA_StatusCode UA_EXPORT UA_Server_run_startup(UA_Server *server); /* Executes a single iteration of the server's main loop. * * @param server The server object. * @param waitInternal Should we wait for messages in the networklayer? * Otherwise, the timouts for the networklayers are set to zero. * The default max wait time is 50millisec. * @return Returns how long we can wait until the next scheduled job (in millisec) */ UA_UInt16 UA_EXPORT UA_Server_run_iterate(UA_Server *server, UA_Boolean waitInternal); /* The epilogue part of UA_Server_run (no need to use if you call UA_Server_run) */ UA_StatusCode UA_EXPORT UA_Server_run_shutdown(UA_Server *server); /** * Modify a running server * ----------------------- */ /* Add a job for cyclic repetition to the server. * * @param server The server object. * @param job The job that shall be added. * @param interval The job shall be repeatedly executed with the given interval * (in ms). The interval must be larger than 5ms. The first execution * occurs at now() + interval at the latest. * @param jobId Set to the guid of the repeated job. This can be used to cancel * the job later on. If the pointer is null, the guid is not set. * @return Upon success, UA_STATUSCODE_GOOD is returned. An error code otherwise. */ UA_StatusCode UA_EXPORT UA_Server_addRepeatedJob(UA_Server *server, UA_Job job, UA_UInt32 interval, UA_Guid *jobId); /* Remove repeated job. The entry will be removed asynchronously during the next * iteration of the server main loop. * * @param server The server object. * @param jobId The id of the job that shall be removed. * @return Upon sucess, UA_STATUSCODE_GOOD is returned. An error code otherwise. */ UA_StatusCode UA_EXPORT UA_Server_removeRepeatedJob(UA_Server *server, UA_Guid jobId); /* Add a new namespace to the server. Returns the index of the new namespace */ UA_UInt16 UA_EXPORT UA_Server_addNamespace(UA_Server *server, const char* name); /** * Node Management * --------------- * * Callback Mechanisms * ^^^^^^^^^^^^^^^^^^^ * There are four mechanisms for callbacks from the node-based information model * into userspace: * * - Datasources for variable nodes, where the variable content is managed * externally * - Value-callbacks for variable nodes, where userspace is notified when a * read/write occurs * - Object lifecycle management, where a user-defined constructor and * destructor is added to an object type * - Method callbacks, where a user-defined method is exposed in the information * model * * Data Source Callback * ~~~~~~~~~~~~~~~~~~~~ * Datasources are the interface to local data providers. It is expected that * the read and release callbacks are implemented. The write callback can be set * to a null-pointer. */ typedef struct { void *handle; /* A custom pointer to reuse the same datasource functions for multiple sources */ /* Copies the data from the source into the provided value. * * @param handle An optional pointer to user-defined data for the specific data source * @param nodeid Id of the read node * @param includeSourceTimeStamp If true, then the datasource is expected to set the source * timestamp in the returned value * @param range If not null, then the datasource shall return only a * selection of the (nonscalar) data. Set * UA_STATUSCODE_BADINDEXRANGEINVALID in the value if this does not * apply. * @param value The (non-null) DataValue that is returned to the client. The * data source sets the read data, the result status and optionally a * sourcetimestamp. * @return Returns a status code for logging. Error codes intended for the * original caller are set in the value. If an error is returned, * then no releasing of the value is done. */ UA_StatusCode (*read)(void *handle, const UA_NodeId nodeid, UA_Boolean includeSourceTimeStamp, const UA_NumericRange *range, UA_DataValue *value); /* Write into a data source. The write member of UA_DataSource can be empty * if the operation is unsupported. * * @param handle An optional pointer to user-defined data for the specific data source * @param nodeid Id of the node being written to * @param data The data to be written into the data source * @param range An optional data range. If the data source is scalar or does * not support writing of ranges, then an error code is returned. * @return Returns a status code that is returned to the user */ UA_StatusCode (*write)(void *handle, const UA_NodeId nodeid, const UA_Variant *data, const UA_NumericRange *range); } UA_DataSource; UA_StatusCode UA_EXPORT UA_Server_setVariableNode_dataSource(UA_Server *server, const UA_NodeId nodeId, const UA_DataSource dataSource); /** * Value Callback * ~~~~~~~~~~~~~~ * Value Callbacks can be attached to variable and variable type nodes. If * not-null, they are called before reading and after writing respectively. */ typedef struct { void *handle; void (*onRead)(void *handle, const UA_NodeId nodeid, const UA_Variant *data, const UA_NumericRange *range); void (*onWrite)(void *handle, const UA_NodeId nodeid, const UA_Variant *data, const UA_NumericRange *range); } UA_ValueCallback; UA_StatusCode UA_EXPORT UA_Server_setVariableNode_valueCallback(UA_Server *server, const UA_NodeId nodeId, const UA_ValueCallback callback); /** * Object Lifecycle Management Callbacks * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * Lifecycle management adds constructor and destructor callbacks to * object types. */ typedef struct { /* Returns the instance handle that is then attached to the node */ void * (*constructor)(const UA_NodeId instance); void (*destructor)(const UA_NodeId instance, void *instanceHandle); } UA_ObjectLifecycleManagement; UA_StatusCode UA_EXPORT UA_Server_setObjectTypeNode_lifecycleManagement(UA_Server *server, UA_NodeId nodeId, UA_ObjectLifecycleManagement olm); /** * Method Callbacks * ~~~~~~~~~~~~~~~~ */ typedef UA_StatusCode (*UA_MethodCallback)(void *methodHandle, const UA_NodeId objectId, size_t inputSize, const UA_Variant *input, size_t outputSize, UA_Variant *output); #ifdef UA_ENABLE_METHODCALLS UA_StatusCode UA_EXPORT UA_Server_setMethodNode_callback(UA_Server *server, const UA_NodeId methodNodeId, UA_MethodCallback method, void *handle); #endif /** * Node Addition and Deletion * ^^^^^^^^^^^^^^^^^^^^^^^^^ */ UA_StatusCode UA_EXPORT UA_Server_deleteNode(UA_Server *server, const UA_NodeId nodeId, UA_Boolean deleteReferences); /** * The instantiation callback is used to track the addition of new nodes. It is * also called for all sub-nodes contained in an object or variable type node * that is instantiated. */ typedef struct UA_InstantiationCallback_s { UA_StatusCode (*method)(UA_NodeId objectId, UA_NodeId definitionId, void *handle); void *handle; } UA_InstantiationCallback; /* Don't use this function. There are typed versions as inline functions. */ UA_StatusCode UA_EXPORT __UA_Server_addNode(UA_Server *server, const UA_NodeClass nodeClass, const UA_NodeId requestedNewNodeId, const UA_NodeId parentNodeId, const UA_NodeId referenceTypeId, const UA_QualifiedName browseName, const UA_NodeId typeDefinition, const UA_NodeAttributes *attr, const UA_DataType *attributeType, UA_InstantiationCallback *instantiationCallback, UA_NodeId *outNewNodeId); static UA_INLINE UA_StatusCode UA_Server_addVariableNode(UA_Server *server, const UA_NodeId requestedNewNodeId, const UA_NodeId parentNodeId, const UA_NodeId referenceTypeId, const UA_QualifiedName browseName, const UA_NodeId typeDefinition, const UA_VariableAttributes attr, UA_InstantiationCallback *instantiationCallback, UA_NodeId *outNewNodeId) { return __UA_Server_addNode(server, UA_NODECLASS_VARIABLE, requestedNewNodeId, parentNodeId, referenceTypeId, browseName, typeDefinition, (const UA_NodeAttributes*)&attr, &UA_TYPES[UA_TYPES_VARIABLEATTRIBUTES], instantiationCallback, outNewNodeId); } static UA_INLINE UA_StatusCode UA_Server_addVariableTypeNode(UA_Server *server, const UA_NodeId requestedNewNodeId, const UA_NodeId parentNodeId, const UA_NodeId referenceTypeId, const UA_QualifiedName browseName, const UA_VariableTypeAttributes attr, UA_InstantiationCallback *instantiationCallback, UA_NodeId *outNewNodeId) { return __UA_Server_addNode(server, UA_NODECLASS_VARIABLETYPE, requestedNewNodeId, parentNodeId, referenceTypeId, browseName, UA_NODEID_NULL, (const UA_NodeAttributes*)&attr, &UA_TYPES[UA_TYPES_VARIABLETYPEATTRIBUTES], instantiationCallback, outNewNodeId); } static UA_INLINE UA_StatusCode UA_Server_addObjectNode(UA_Server *server, const UA_NodeId requestedNewNodeId, const UA_NodeId parentNodeId, const UA_NodeId referenceTypeId, const UA_QualifiedName browseName, const UA_NodeId typeDefinition, const UA_ObjectAttributes attr, UA_InstantiationCallback *instantiationCallback, UA_NodeId *outNewNodeId) { return __UA_Server_addNode(server, UA_NODECLASS_OBJECT, requestedNewNodeId, parentNodeId, referenceTypeId, browseName, typeDefinition, (const UA_NodeAttributes*)&attr, &UA_TYPES[UA_TYPES_OBJECTATTRIBUTES], instantiationCallback, outNewNodeId); } static UA_INLINE UA_StatusCode UA_Server_addObjectTypeNode(UA_Server *server, const UA_NodeId requestedNewNodeId, const UA_NodeId parentNodeId, const UA_NodeId referenceTypeId, const UA_QualifiedName browseName, const UA_ObjectTypeAttributes attr, UA_InstantiationCallback *instantiationCallback, UA_NodeId *outNewNodeId) { return __UA_Server_addNode(server, UA_NODECLASS_OBJECTTYPE, requestedNewNodeId, parentNodeId, referenceTypeId, browseName, UA_NODEID_NULL, (const UA_NodeAttributes*)&attr, &UA_TYPES[UA_TYPES_OBJECTTYPEATTRIBUTES], instantiationCallback, outNewNodeId); } static UA_INLINE UA_StatusCode UA_Server_addViewNode(UA_Server *server, const UA_NodeId requestedNewNodeId, const UA_NodeId parentNodeId, const UA_NodeId referenceTypeId, const UA_QualifiedName browseName, const UA_ViewAttributes attr, UA_InstantiationCallback *instantiationCallback, UA_NodeId *outNewNodeId) { return __UA_Server_addNode(server, UA_NODECLASS_VIEW, requestedNewNodeId, parentNodeId, referenceTypeId, browseName, UA_NODEID_NULL, (const UA_NodeAttributes*)&attr, &UA_TYPES[UA_TYPES_VIEWATTRIBUTES], instantiationCallback, outNewNodeId); } static UA_INLINE UA_StatusCode UA_Server_addReferenceTypeNode(UA_Server *server, const UA_NodeId requestedNewNodeId, const UA_NodeId parentNodeId, const UA_NodeId referenceTypeId, const UA_QualifiedName browseName, const UA_ReferenceTypeAttributes attr, UA_InstantiationCallback *instantiationCallback, UA_NodeId *outNewNodeId) { return __UA_Server_addNode(server, UA_NODECLASS_REFERENCETYPE, requestedNewNodeId, parentNodeId, referenceTypeId, browseName, UA_NODEID_NULL, (const UA_NodeAttributes*)&attr, &UA_TYPES[UA_TYPES_REFERENCETYPEATTRIBUTES], instantiationCallback, outNewNodeId); } static UA_INLINE UA_StatusCode UA_Server_addDataTypeNode(UA_Server *server, const UA_NodeId requestedNewNodeId, const UA_NodeId parentNodeId, const UA_NodeId referenceTypeId, const UA_QualifiedName browseName, const UA_DataTypeAttributes attr, UA_InstantiationCallback *instantiationCallback, UA_NodeId *outNewNodeId) { return __UA_Server_addNode(server, UA_NODECLASS_DATATYPE, requestedNewNodeId, parentNodeId, referenceTypeId, browseName, UA_NODEID_NULL, (const UA_NodeAttributes*)&attr, &UA_TYPES[UA_TYPES_DATATYPEATTRIBUTES], instantiationCallback, outNewNodeId); } UA_StatusCode UA_EXPORT UA_Server_addDataSourceVariableNode(UA_Server *server, const UA_NodeId requestedNewNodeId, const UA_NodeId parentNodeId, const UA_NodeId referenceTypeId, const UA_QualifiedName browseName, const UA_NodeId typeDefinition, const UA_VariableAttributes attr, const UA_DataSource dataSource, UA_NodeId *outNewNodeId); #ifdef UA_ENABLE_METHODCALLS UA_StatusCode UA_EXPORT UA_Server_addMethodNode(UA_Server *server, const UA_NodeId requestedNewNodeId, const UA_NodeId parentNodeId, const UA_NodeId referenceTypeId, const UA_QualifiedName browseName, const UA_MethodAttributes attr, UA_MethodCallback method, void *handle, size_t inputArgumentsSize, const UA_Argument* inputArguments, size_t outputArgumentsSize, const UA_Argument* outputArguments, UA_NodeId *outNewNodeId); #endif /** * Write Node Attributes * ^^^^^^^^^^^^^^^^^^^^^ * The following node attributes cannot be written * * - NodeClass * - NodeId * - Symmetric * - ContainsNoLoop * * The following attributes cannot be written from the server, as there is no "user" in the server * * - UserWriteMask * - UserAccessLevel * - UserExecutable * * The following attributes are currently taken from the value variant: * TODO: Handle them independent from the variable, ensure that the implicit constraints hold * * - DataType * - ValueRank * - ArrayDimensions * * - Historizing is currently unsupported */ /* Don't use this function. There are typed versions with no additional overhead. */ UA_StatusCode UA_EXPORT __UA_Server_write(UA_Server *server, const UA_NodeId *nodeId, const UA_AttributeId attributeId, const UA_DataType *type, const void *value); static UA_INLINE UA_StatusCode UA_Server_writeBrowseName(UA_Server *server, const UA_NodeId nodeId, const UA_QualifiedName browseName) { return __UA_Server_write(server, &nodeId, UA_ATTRIBUTEID_BROWSENAME, &UA_TYPES[UA_TYPES_QUALIFIEDNAME], &browseName); } static UA_INLINE UA_StatusCode UA_Server_writeDisplayName(UA_Server *server, const UA_NodeId nodeId, const UA_LocalizedText displayName) { return __UA_Server_write(server, &nodeId, UA_ATTRIBUTEID_DISPLAYNAME, &UA_TYPES[UA_TYPES_LOCALIZEDTEXT], &displayName); } static UA_INLINE UA_StatusCode UA_Server_writeDescription(UA_Server *server, const UA_NodeId nodeId, const UA_LocalizedText description) { return __UA_Server_write(server, &nodeId, UA_ATTRIBUTEID_DESCRIPTION, &UA_TYPES[UA_TYPES_LOCALIZEDTEXT], &description); } static UA_INLINE UA_StatusCode UA_Server_writeWriteMask(UA_Server *server, const UA_NodeId nodeId, const UA_UInt32 writeMask) { return __UA_Server_write(server, &nodeId, UA_ATTRIBUTEID_WRITEMASK, &UA_TYPES[UA_TYPES_UINT32], &writeMask); } static UA_INLINE UA_StatusCode UA_Server_writeIsAbstract(UA_Server *server, const UA_NodeId nodeId, const UA_Boolean isAbstract) { return __UA_Server_write(server, &nodeId, UA_ATTRIBUTEID_ISABSTRACT, &UA_TYPES[UA_TYPES_BOOLEAN], &isAbstract); } static UA_INLINE UA_StatusCode UA_Server_writeInverseName(UA_Server *server, const UA_NodeId nodeId, const UA_LocalizedText inverseName) { return __UA_Server_write(server, &nodeId, UA_ATTRIBUTEID_INVERSENAME, &UA_TYPES[UA_TYPES_LOCALIZEDTEXT], &inverseName); } static UA_INLINE UA_StatusCode UA_Server_writeEventNotifier(UA_Server *server, const UA_NodeId nodeId, const UA_Byte eventNotifier) { return __UA_Server_write(server, &nodeId, UA_ATTRIBUTEID_EVENTNOTIFIER, &UA_TYPES[UA_TYPES_BYTE], &eventNotifier); } static UA_INLINE UA_StatusCode UA_Server_writeValue(UA_Server *server, const UA_NodeId nodeId, const UA_Variant value) { return __UA_Server_write(server, &nodeId, UA_ATTRIBUTEID_VALUE, &UA_TYPES[UA_TYPES_VARIANT], &value); } static UA_INLINE UA_StatusCode UA_Server_writeAccessLevel(UA_Server *server, const UA_NodeId nodeId, const UA_UInt32 accessLevel) { return __UA_Server_write(server, &nodeId, UA_ATTRIBUTEID_ACCESSLEVEL, &UA_TYPES[UA_TYPES_UINT32], &accessLevel); } static UA_INLINE UA_StatusCode UA_Server_writeMinimumSamplingInterval(UA_Server *server, const UA_NodeId nodeId, const UA_Double miniumSamplingInterval) { return __UA_Server_write(server, &nodeId, UA_ATTRIBUTEID_MINIMUMSAMPLINGINTERVAL, &UA_TYPES[UA_TYPES_DOUBLE], &miniumSamplingInterval); } static UA_INLINE UA_StatusCode UA_Server_writeExecutable(UA_Server *server, const UA_NodeId nodeId, const UA_Boolean executable) { return __UA_Server_write(server, &nodeId, UA_ATTRIBUTEID_EXECUTABLE, &UA_TYPES[UA_TYPES_BOOLEAN], &executable); } /** * Read Node Attributes * ^^^^^^^^^^^^^^^^^^^^ * The following attributes cannot be read, since the local "admin" user always has * full rights. * * - UserWriteMask * - UserAccessLevel * - UserExecutable */ /* Don't use this function. There are typed versions for every supported attribute. */ UA_StatusCode UA_EXPORT __UA_Server_read(UA_Server *server, const UA_NodeId *nodeId, UA_AttributeId attributeId, void *v); static UA_INLINE UA_StatusCode UA_Server_readNodeId(UA_Server *server, const UA_NodeId nodeId, UA_NodeId *outNodeId) { return __UA_Server_read(server, &nodeId, UA_ATTRIBUTEID_NODEID, outNodeId); } static UA_INLINE UA_StatusCode UA_Server_readNodeClass(UA_Server *server, const UA_NodeId nodeId, UA_NodeClass *outNodeClass) { return __UA_Server_read(server, &nodeId, UA_ATTRIBUTEID_NODECLASS, outNodeClass); } static UA_INLINE UA_StatusCode UA_Server_readBrowseName(UA_Server *server, const UA_NodeId nodeId, UA_QualifiedName *outBrowseName) { return __UA_Server_read(server, &nodeId, UA_ATTRIBUTEID_BROWSENAME, outBrowseName); } static UA_INLINE UA_StatusCode UA_Server_readDisplayName(UA_Server *server, const UA_NodeId nodeId, UA_LocalizedText *outDisplayName) { return __UA_Server_read(server, &nodeId, UA_ATTRIBUTEID_DISPLAYNAME, outDisplayName); } static UA_INLINE UA_StatusCode UA_Server_readDescription(UA_Server *server, const UA_NodeId nodeId, UA_LocalizedText *outDescription) { return __UA_Server_read(server, &nodeId, UA_ATTRIBUTEID_DESCRIPTION, outDescription); } static UA_INLINE UA_StatusCode UA_Server_readWriteMask(UA_Server *server, const UA_NodeId nodeId, UA_UInt32 *outWriteMask) { return __UA_Server_read(server, &nodeId, UA_ATTRIBUTEID_WRITEMASK, outWriteMask); } static UA_INLINE UA_StatusCode UA_Server_readIsAbstract(UA_Server *server, const UA_NodeId nodeId, UA_Boolean *outIsAbstract) { return __UA_Server_read(server, &nodeId, UA_ATTRIBUTEID_ISABSTRACT, outIsAbstract); } static UA_INLINE UA_StatusCode UA_Server_readSymmetric(UA_Server *server, const UA_NodeId nodeId, UA_Boolean *outSymmetric) { return __UA_Server_read(server, &nodeId, UA_ATTRIBUTEID_SYMMETRIC, outSymmetric); } static UA_INLINE UA_StatusCode UA_Server_readInverseName(UA_Server *server, const UA_NodeId nodeId, UA_LocalizedText *outInverseName) { return __UA_Server_read(server, &nodeId, UA_ATTRIBUTEID_INVERSENAME, outInverseName); } static UA_INLINE UA_StatusCode UA_Server_readContainsNoLoop(UA_Server *server, const UA_NodeId nodeId, UA_Boolean *outContainsNoLoops) { return __UA_Server_read(server, &nodeId, UA_ATTRIBUTEID_CONTAINSNOLOOPS, outContainsNoLoops); } static UA_INLINE UA_StatusCode UA_Server_readEventNotifier(UA_Server *server, const UA_NodeId nodeId, UA_Byte *outEventNotifier) { return __UA_Server_read(server, &nodeId, UA_ATTRIBUTEID_EVENTNOTIFIER, outEventNotifier); } static UA_INLINE UA_StatusCode UA_Server_readValue(UA_Server *server, const UA_NodeId nodeId, UA_Variant *outValue) { return __UA_Server_read(server, &nodeId, UA_ATTRIBUTEID_VALUE, outValue); } static UA_INLINE UA_StatusCode UA_Server_readDataType(UA_Server *server, const UA_NodeId nodeId, UA_NodeId *outDataType) { return __UA_Server_read(server, &nodeId, UA_ATTRIBUTEID_DATATYPE, outDataType); } static UA_INLINE UA_StatusCode UA_Server_readValueRank(UA_Server *server, const UA_NodeId nodeId, UA_Int32 *outValueRank) { return __UA_Server_read(server, &nodeId, UA_ATTRIBUTEID_VALUERANK, outValueRank); } /* Returns a variant with an int32 array */ static UA_INLINE UA_StatusCode UA_Server_readArrayDimensions(UA_Server *server, const UA_NodeId nodeId, UA_Variant *outArrayDimensions) { return __UA_Server_read(server, &nodeId, UA_ATTRIBUTEID_ARRAYDIMENSIONS, outArrayDimensions); } static UA_INLINE UA_StatusCode UA_Server_readAccessLevel(UA_Server *server, const UA_NodeId nodeId, UA_UInt32 *outAccessLevel) { return __UA_Server_read(server, &nodeId, UA_ATTRIBUTEID_ACCESSLEVEL, outAccessLevel); } static UA_INLINE UA_StatusCode UA_Server_readMinimumSamplingInterval(UA_Server *server, const UA_NodeId nodeId, UA_Double *outMinimumSamplingInterval) { return __UA_Server_read(server, &nodeId, UA_ATTRIBUTEID_MINIMUMSAMPLINGINTERVAL, outMinimumSamplingInterval); } static UA_INLINE UA_StatusCode UA_Server_readHistorizing(UA_Server *server, const UA_NodeId nodeId, UA_Boolean *outHistorizing) { return __UA_Server_read(server, &nodeId, UA_ATTRIBUTEID_HISTORIZING, outHistorizing); } static UA_INLINE UA_StatusCode UA_Server_readExecutable(UA_Server *server, const UA_NodeId nodeId, UA_Boolean *outExecutable) { return __UA_Server_read(server, &nodeId, UA_ATTRIBUTEID_EXECUTABLE, outExecutable); } /** * Reference Management * -------------------- */ UA_StatusCode UA_EXPORT UA_Server_addReference(UA_Server *server, const UA_NodeId sourceId, const UA_NodeId refTypeId, const UA_ExpandedNodeId targetId, UA_Boolean isForward); UA_StatusCode UA_EXPORT UA_Server_deleteReference(UA_Server *server, const UA_NodeId sourceNodeId, const UA_NodeId referenceTypeId, UA_Boolean isForward, const UA_ExpandedNodeId targetNodeId, UA_Boolean deleteBidirectional); /** * Browsing * -------- */ UA_BrowseResult UA_EXPORT UA_Server_browse(UA_Server *server, UA_UInt32 maxrefs, const UA_BrowseDescription *descr); UA_BrowseResult UA_EXPORT UA_Server_browseNext(UA_Server *server, UA_Boolean releaseContinuationPoint, const UA_ByteString *continuationPoint); #ifndef HAVE_NODEITER_CALLBACK #define HAVE_NODEITER_CALLBACK /* Iterate over all nodes referenced by parentNodeId by calling the callback * function for each child node (in ifdef because GCC/CLANG handle include order * differently) */ typedef UA_StatusCode (*UA_NodeIteratorCallback)(UA_NodeId childId, UA_Boolean isInverse, UA_NodeId referenceTypeId, void *handle); #endif UA_StatusCode UA_EXPORT UA_Server_forEachChildNodeCall(UA_Server *server, UA_NodeId parentNodeId, UA_NodeIteratorCallback callback, void *handle); /** * Method Call * ----------- */ #ifdef UA_ENABLE_METHODCALLS UA_CallMethodResult UA_EXPORT UA_Server_call(UA_Server *server, const UA_CallMethodRequest *request); #endif #ifdef __cplusplus } #endif /*********************************** amalgamated original file "/home/wn/Sources/open62541-open62541-395ce48/include/ua_server_external_ns.h" ***********************************/ /* * Copyright (C) 2014 the contributors as stated in the AUTHORS file * * This file is part of open62541. open62541 is free software: you can * redistribute it and/or modify it under the terms of the GNU Lesser General * Public License, version 3 (as published by the Free Software Foundation) with * a static linking exception as stated in the LICENSE file provided with * open62541. * * open62541 is distributed in the hope that it will be useful, but WITHOUT ANY * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR * A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more * details. */ #ifdef __cplusplus extern "C" { #endif /** * An external application that manages its own data and data model. To plug in * outside data sources, one can use * * - VariableNodes with a data source (functions that are called for read and write access) * - An external nodestore that is mapped to specific namespaces * * If no external nodestore is defined for a nodeid, it is always looked up in * the "local" nodestore of open62541. Namespace Zero is always in the local * nodestore. * * @{ */ typedef UA_Int32 (*UA_ExternalNodeStore_addNodes) (void *ensHandle, const UA_RequestHeader *requestHeader, UA_AddNodesItem *nodesToAdd, UA_UInt32 *indices, UA_UInt32 indicesSize, UA_AddNodesResult* addNodesResults, UA_DiagnosticInfo *diagnosticInfos); typedef UA_Int32 (*UA_ExternalNodeStore_addReferences) (void *ensHandle, const UA_RequestHeader *requestHeader, UA_AddReferencesItem* referencesToAdd, UA_UInt32 *indices,UA_UInt32 indicesSize, UA_StatusCode *addReferencesResults, UA_DiagnosticInfo *diagnosticInfos); typedef UA_Int32 (*UA_ExternalNodeStore_deleteNodes) (void *ensHandle, const UA_RequestHeader *requestHeader, UA_DeleteNodesItem *nodesToDelete, UA_UInt32 *indices, UA_UInt32 indicesSize, UA_StatusCode *deleteNodesResults, UA_DiagnosticInfo *diagnosticInfos); typedef UA_Int32 (*UA_ExternalNodeStore_deleteReferences) (void *ensHandle, const UA_RequestHeader *requestHeader, UA_DeleteReferencesItem *referenceToDelete, UA_UInt32 *indices, UA_UInt32 indicesSize, UA_StatusCode deleteReferencesresults, UA_DiagnosticInfo *diagnosticInfos); typedef UA_Int32 (*UA_ExternalNodeStore_readNodes) (void *ensHandle, const UA_RequestHeader *requestHeader, UA_ReadValueId *readValueIds, UA_UInt32 *indices, UA_UInt32 indicesSize,UA_DataValue *readNodesResults, UA_Boolean timeStampToReturn, UA_DiagnosticInfo *diagnosticInfos); typedef UA_Int32 (*UA_ExternalNodeStore_writeNodes) (void *ensHandle, const UA_RequestHeader *requestHeader, UA_WriteValue *writeValues, UA_UInt32 *indices, UA_UInt32 indicesSize, UA_StatusCode *writeNodesResults, UA_DiagnosticInfo *diagnosticInfo); typedef UA_Int32 (*UA_ExternalNodeStore_browseNodes) (void *ensHandle, const UA_RequestHeader *requestHeader, UA_BrowseDescription *browseDescriptions, UA_UInt32 *indices, UA_UInt32 indicesSize, UA_UInt32 requestedMaxReferencesPerNode, UA_BrowseResult *browseResults, UA_DiagnosticInfo *diagnosticInfos); typedef UA_Int32 (*UA_ExternalNodeStore_translateBrowsePathsToNodeIds) (void *ensHandle, const UA_RequestHeader *requestHeader, UA_BrowsePath *browsePath, UA_UInt32 *indices, UA_UInt32 indicesSize, UA_BrowsePathResult *browsePathResults, UA_DiagnosticInfo *diagnosticInfos); typedef UA_Int32 (*UA_ExternalNodeStore_delete)(void *ensHandle); typedef struct UA_ExternalNodeStore { void *ensHandle; UA_ExternalNodeStore_addNodes addNodes; UA_ExternalNodeStore_deleteNodes deleteNodes; UA_ExternalNodeStore_writeNodes writeNodes; UA_ExternalNodeStore_readNodes readNodes; UA_ExternalNodeStore_browseNodes browseNodes; UA_ExternalNodeStore_translateBrowsePathsToNodeIds translateBrowsePathsToNodeIds; UA_ExternalNodeStore_addReferences addReferences; UA_ExternalNodeStore_deleteReferences deleteReferences; UA_ExternalNodeStore_delete destroy; } UA_ExternalNodeStore; UA_StatusCode UA_EXPORT UA_Server_addExternalNamespace(UA_Server *server, const UA_String *url, UA_ExternalNodeStore *nodeStore, UA_UInt16 *assignedNamespaceIndex); #ifdef __cplusplus } #endif /*********************************** amalgamated original file "/home/wn/Sources/open62541-open62541-395ce48/include/ua_client.h" ***********************************/ /* * Copyright (C) 2014 the contributors as stated in the AUTHORS file * * This file is part of open62541. open62541 is free software: you can * redistribute it and/or modify it under the terms of the GNU Lesser General * Public License, version 3 (as published by the Free Software Foundation) with * a static linking exception as stated in the LICENSE file provided with * open62541. * * open62541 is distributed in the hope that it will be useful, but WITHOUT ANY * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR * A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more * details. */ #ifdef __cplusplus extern "C" { #endif /** * Client * ====== * * Client Configuration * -------------------- */ typedef UA_Connection (*UA_ConnectClientConnection)(UA_ConnectionConfig localConf, const char *endpointUrl, UA_Logger logger); typedef struct UA_ClientConfig { UA_UInt32 timeout; //sync response timeout UA_UInt32 secureChannelLifeTime; // lifetime in ms (then the channel needs to be renewed) UA_Logger logger; UA_ConnectionConfig localConnectionConfig; UA_ConnectClientConnection connectionFunc; } UA_ClientConfig; /** * Client Lifecycle * ---------------- */ typedef enum { UA_CLIENTSTATE_READY, /* The client is not connected but initialized and ready to use. */ UA_CLIENTSTATE_CONNECTED, /* The client is connected to a server. */ UA_CLIENTSTATE_FAULTED, /* An error has occured that might have influenced the connection state. A successfull service call or renewal of the secure channel will reset the state to CONNECTED. */ UA_CLIENTSTATE_ERRORED /* A non-recoverable error has occured and the connection is no longer reliable. The client needs to be disconnected and reinitialized to recover into a CONNECTED state. */ } UA_ClientState; struct UA_Client; typedef struct UA_Client UA_Client; /* Create a new client * * @param config for the new client. You can use UA_ClientConfig_standard which has sane defaults * @param logger function pointer to a logger function. See examples/logger_stdout.c for a simple * implementation * @return return the new Client object */ UA_Client UA_EXPORT * UA_Client_new(UA_ClientConfig config); /* Get the client connection status */ UA_ClientState UA_EXPORT UA_Client_getState(UA_Client *client); /* Reset a client */ void UA_EXPORT UA_Client_reset(UA_Client *client); /* Delete a client */ void UA_EXPORT UA_Client_delete(UA_Client *client); /** * Manage the Connection * --------------------- */ /* Gets a list of endpoints of a server * * @param client to use * @param server url to connect (for example "opc.tcp://localhost:16664") * @param endpointDescriptionsSize size of the array of endpoint descriptions * @param endpointDescriptions array of endpoint descriptions that is allocated by the function (you need to free manually) * @return Indicates whether the operation succeeded or returns an error code */ UA_StatusCode UA_EXPORT UA_Client_getEndpoints(UA_Client *client, const char *serverUrl, size_t* endpointDescriptionsSize, UA_EndpointDescription** endpointDescriptions); /* Connect to the selected server * * @param client to use * @param endpointURL to connect (for example "opc.tcp://localhost:16664") * @return Indicates whether the operation succeeded or returns an error code */ UA_StatusCode UA_EXPORT UA_Client_connect(UA_Client *client, const char *endpointUrl); /* Connect to the selected server with the given username and password * * @param client to use * @param endpointURL to connect (for example "opc.tcp://localhost:16664") * @param username * @param password * @return Indicates whether the operation succeeded or returns an error code */ UA_StatusCode UA_EXPORT UA_Client_connect_username(UA_Client *client, const char *endpointUrl, const char *username, const char *password); /* Close a connection to the selected server */ UA_StatusCode UA_EXPORT UA_Client_disconnect(UA_Client *client); /* Renew the underlying secure channel */ UA_StatusCode UA_EXPORT UA_Client_manuallyRenewSecureChannel(UA_Client *client); /** * Raw Services * ------------ * The raw OPC UA services are exposed to the client. But most of them time, it is better to use the * convenience functions from `ua_client_highlevel.h` that wrap the raw services. See the Section * :ref:`services` for a detailed description of each service. */ /* Don't use this function. Use the type versions below instead. */ void UA_EXPORT __UA_Client_Service(UA_Client *client, const void *request, const UA_DataType *requestType, void *response, const UA_DataType *responseType); /** * Attribute Service Set * ^^^^^^^^^^^^^^^^^^^^^ */ static UA_INLINE UA_ReadResponse UA_Client_Service_read(UA_Client *client, const UA_ReadRequest request) { UA_ReadResponse response; __UA_Client_Service(client, &request, &UA_TYPES[UA_TYPES_READREQUEST], &response, &UA_TYPES[UA_TYPES_READRESPONSE]); return response; } static UA_INLINE UA_WriteResponse UA_Client_Service_write(UA_Client *client, const UA_WriteRequest request) { UA_WriteResponse response; __UA_Client_Service(client, &request, &UA_TYPES[UA_TYPES_WRITEREQUEST], &response, &UA_TYPES[UA_TYPES_WRITERESPONSE]); return response; } /** * Method Service Set * ^^^^^^^^^^^^^^^^^^ */ static UA_INLINE UA_CallResponse UA_Client_Service_call(UA_Client *client, const UA_CallRequest request) { UA_CallResponse response; __UA_Client_Service(client, &request, &UA_TYPES[UA_TYPES_CALLREQUEST], &response, &UA_TYPES[UA_TYPES_CALLRESPONSE]); return response; } /** * NodeManagement Service Set * ^^^^^^^^^^^^^^^^^^^^^^^^^^ */ static UA_INLINE UA_AddNodesResponse UA_Client_Service_addNodes(UA_Client *client, const UA_AddNodesRequest request) { UA_AddNodesResponse response; __UA_Client_Service(client, &request, &UA_TYPES[UA_TYPES_ADDNODESREQUEST], &response, &UA_TYPES[UA_TYPES_ADDNODESRESPONSE]); return response; } static UA_INLINE UA_AddReferencesResponse UA_Client_Service_addReferences(UA_Client *client, const UA_AddReferencesRequest request) { UA_AddReferencesResponse response; __UA_Client_Service(client, &request, &UA_TYPES[UA_TYPES_ADDNODESREQUEST], &response, &UA_TYPES[UA_TYPES_ADDNODESRESPONSE]); return response; } static UA_INLINE UA_DeleteNodesResponse UA_Client_Service_deleteNodes(UA_Client *client, const UA_DeleteNodesRequest request) { UA_DeleteNodesResponse response; __UA_Client_Service(client, &request, &UA_TYPES[UA_TYPES_DELETENODESREQUEST], &response, &UA_TYPES[UA_TYPES_DELETENODESRESPONSE]); return response; } static UA_INLINE UA_DeleteReferencesResponse UA_Client_Service_deleteReferences(UA_Client *client, const UA_DeleteReferencesRequest request) { UA_DeleteReferencesResponse response; __UA_Client_Service(client, &request, &UA_TYPES[UA_TYPES_DELETENODESREQUEST], &response, &UA_TYPES[UA_TYPES_DELETENODESRESPONSE]); return response; } /** * View Service Set * ^^^^^^^^^^^^^^^^ */ static UA_INLINE UA_BrowseResponse UA_Client_Service_browse(UA_Client *client, const UA_BrowseRequest request) { UA_BrowseResponse response; __UA_Client_Service(client, &request, &UA_TYPES[UA_TYPES_BROWSEREQUEST], &response, &UA_TYPES[UA_TYPES_BROWSERESPONSE]); return response; } static UA_INLINE UA_BrowseNextResponse UA_Client_Service_browseNext(UA_Client *client, const UA_BrowseNextRequest request) { UA_BrowseNextResponse response; __UA_Client_Service(client, &request, &UA_TYPES[UA_TYPES_BROWSENEXTREQUEST], &response, &UA_TYPES[UA_TYPES_BROWSENEXTRESPONSE]); return response; } static UA_INLINE UA_TranslateBrowsePathsToNodeIdsResponse UA_Client_Service_translateBrowsePathsToNodeIds(UA_Client *client, const UA_TranslateBrowsePathsToNodeIdsRequest request) { UA_TranslateBrowsePathsToNodeIdsResponse response; __UA_Client_Service(client, &request, &UA_TYPES[UA_TYPES_TRANSLATEBROWSEPATHSTONODEIDSREQUEST], &response, &UA_TYPES[UA_TYPES_TRANSLATEBROWSEPATHSTONODEIDSRESPONSE]); return response; } static UA_INLINE UA_RegisterNodesResponse UA_Client_Service_registerNodes(UA_Client *client, const UA_RegisterNodesRequest request) { UA_RegisterNodesResponse response; __UA_Client_Service(client, &request, &UA_TYPES[UA_TYPES_REGISTERNODESREQUEST], &response, &UA_TYPES[UA_TYPES_REGISTERNODESRESPONSE]); return response; } static UA_INLINE UA_UnregisterNodesResponse UA_Client_Service_unregisterNodes(UA_Client *client, const UA_UnregisterNodesRequest request) { UA_UnregisterNodesResponse response; __UA_Client_Service(client, &request, &UA_TYPES[UA_TYPES_UNREGISTERNODESREQUEST], &response, &UA_TYPES[UA_TYPES_UNREGISTERNODESRESPONSE]); return response; } /** * Query Service Set * ^^^^^^^^^^^^^^^^^ */ static UA_INLINE UA_QueryFirstResponse UA_Client_Service_queryFirst(UA_Client *client, const UA_QueryFirstRequest request) { UA_QueryFirstResponse response; __UA_Client_Service(client, &request, &UA_TYPES[UA_TYPES_QUERYFIRSTREQUEST], &response, &UA_TYPES[UA_TYPES_QUERYFIRSTRESPONSE]); return response; } static UA_INLINE UA_QueryNextResponse UA_Client_Service_queryNext(UA_Client *client, const UA_QueryNextRequest request) { UA_QueryNextResponse response; __UA_Client_Service(client, &request, &UA_TYPES[UA_TYPES_QUERYFIRSTREQUEST], &response, &UA_TYPES[UA_TYPES_QUERYFIRSTRESPONSE]); return response; } #ifdef UA_ENABLE_SUBSCRIPTIONS /** * MonitoredItem Service Set * ^^^^^^^^^^^^^^^^^^^^^^^^^ */ static UA_INLINE UA_CreateMonitoredItemsResponse UA_Client_Service_createMonitoredItems(UA_Client *client, const UA_CreateMonitoredItemsRequest request) { UA_CreateMonitoredItemsResponse response; __UA_Client_Service(client, &request, &UA_TYPES[UA_TYPES_CREATEMONITOREDITEMSREQUEST], &response, &UA_TYPES[UA_TYPES_CREATEMONITOREDITEMSRESPONSE]); return response; } static UA_INLINE UA_DeleteMonitoredItemsResponse UA_Client_Service_deleteMonitoredItems(UA_Client *client, const UA_DeleteMonitoredItemsRequest request) { UA_DeleteMonitoredItemsResponse response; __UA_Client_Service(client, &request, &UA_TYPES[UA_TYPES_DELETEMONITOREDITEMSREQUEST], &response, &UA_TYPES[UA_TYPES_DELETEMONITOREDITEMSRESPONSE]); return response; } /** * Subscription Service Set * ^^^^^^^^^^^^^^^^^^^^^^^^ */ static UA_INLINE UA_CreateSubscriptionResponse UA_Client_Service_createSubscription(UA_Client *client, const UA_CreateSubscriptionRequest request) { UA_CreateSubscriptionResponse response; __UA_Client_Service(client, &request, &UA_TYPES[UA_TYPES_CREATESUBSCRIPTIONREQUEST], &response, &UA_TYPES[UA_TYPES_CREATESUBSCRIPTIONRESPONSE]); return response; } static UA_INLINE UA_ModifySubscriptionResponse UA_Client_Service_modifySubscription(UA_Client *client, const UA_ModifySubscriptionRequest request) { UA_ModifySubscriptionResponse response; __UA_Client_Service(client, &request, &UA_TYPES[UA_TYPES_MODIFYSUBSCRIPTIONREQUEST], &response, &UA_TYPES[UA_TYPES_MODIFYSUBSCRIPTIONRESPONSE]); return response; } static UA_INLINE UA_DeleteSubscriptionsResponse UA_Client_Service_deleteSubscriptions(UA_Client *client, const UA_DeleteSubscriptionsRequest request) { UA_DeleteSubscriptionsResponse response; __UA_Client_Service(client, &request, &UA_TYPES[UA_TYPES_DELETESUBSCRIPTIONSREQUEST], &response, &UA_TYPES[UA_TYPES_DELETESUBSCRIPTIONSRESPONSE]); return response; } static UA_INLINE UA_PublishResponse UA_Client_Service_publish(UA_Client *client, const UA_PublishRequest request) { UA_PublishResponse response; __UA_Client_Service(client, &request, &UA_TYPES[UA_TYPES_PUBLISHREQUEST], &response, &UA_TYPES[UA_TYPES_PUBLISHRESPONSE]); return response; } #endif #ifdef __cplusplus } // extern "C" #endif /*********************************** amalgamated original file "/home/wn/Sources/open62541-open62541-395ce48/include/ua_client_highlevel.h" ***********************************/ /* * Copyright (C) 2014-2016 the contributors as stated in the AUTHORS file * * This file is part of open62541. open62541 is free software: you can * redistribute it and/or modify it under the terms of the GNU Lesser General * Public License, version 3 (as published by the Free Software Foundation) with * a static linking exception as stated in the LICENSE file provided with * open62541. * * open62541 is distributed in the hope that it will be useful, but WITHOUT ANY * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR * A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more * details. */ #ifdef __cplusplus extern "C" { #endif /** * Highlevel Client Functionality * ------------------------------ * The following definitions are convenience functions making use of the * standard OPC UA services in the background. * * Read Attributes * =============== * The following functions can be used to retrieve a single node attribute. Use * the regular service to read several attributes at once. */ /* Don't call this function, use the typed versions */ UA_StatusCode UA_EXPORT __UA_Client_readAttribute(UA_Client *client, const UA_NodeId *nodeId, UA_AttributeId attributeId, void *out, const UA_DataType *outDataType); static UA_INLINE UA_StatusCode UA_Client_readNodeIdAttribute(UA_Client *client, const UA_NodeId nodeId, UA_NodeId *outNodeId) { return __UA_Client_readAttribute(client, &nodeId, UA_ATTRIBUTEID_NODEID, outNodeId, &UA_TYPES[UA_TYPES_NODEID]); } static UA_INLINE UA_StatusCode UA_Client_readNodeClassAttribute(UA_Client *client, const UA_NodeId nodeId, UA_NodeClass *outNodeClass) { return __UA_Client_readAttribute(client, &nodeId, UA_ATTRIBUTEID_NODECLASS, outNodeClass, &UA_TYPES[UA_TYPES_NODECLASS]); } static UA_INLINE UA_StatusCode UA_Client_readBrowseNameAttribute(UA_Client *client, const UA_NodeId nodeId, UA_QualifiedName *outBrowseName) { return __UA_Client_readAttribute(client, &nodeId, UA_ATTRIBUTEID_BROWSENAME, outBrowseName, &UA_TYPES[UA_TYPES_QUALIFIEDNAME]); } static UA_INLINE UA_StatusCode UA_Client_readDisplayNameAttribute(UA_Client *client, const UA_NodeId nodeId, UA_LocalizedText *outDisplayName) { return __UA_Client_readAttribute(client, &nodeId, UA_ATTRIBUTEID_DISPLAYNAME, outDisplayName, &UA_TYPES[UA_TYPES_LOCALIZEDTEXT]); } static UA_INLINE UA_StatusCode UA_Client_readDescriptionAttribute(UA_Client *client, const UA_NodeId nodeId, UA_LocalizedText *outDescription) { return __UA_Client_readAttribute(client, &nodeId, UA_ATTRIBUTEID_DESCRIPTION, outDescription, &UA_TYPES[UA_TYPES_LOCALIZEDTEXT]); } static UA_INLINE UA_StatusCode UA_Client_readWriteMaskAttribute(UA_Client *client, const UA_NodeId nodeId, UA_UInt32 *outWriteMask) { return __UA_Client_readAttribute(client, &nodeId, UA_ATTRIBUTEID_WRITEMASK, outWriteMask, &UA_TYPES[UA_TYPES_UINT32]); } static UA_INLINE UA_StatusCode UA_Client_readUserWriteMaskAttribute(UA_Client *client, const UA_NodeId nodeId, UA_UInt32 *outUserWriteMask) { return __UA_Client_readAttribute(client, &nodeId, UA_ATTRIBUTEID_USERWRITEMASK, outUserWriteMask, &UA_TYPES[UA_TYPES_UINT32]); } static UA_INLINE UA_StatusCode UA_Client_readIsAbstractAttribute(UA_Client *client, const UA_NodeId nodeId, UA_Boolean *outIsAbstract) { return __UA_Client_readAttribute(client, &nodeId, UA_ATTRIBUTEID_ISABSTRACT, outIsAbstract, &UA_TYPES[UA_TYPES_BOOLEAN]); } static UA_INLINE UA_StatusCode UA_Client_readSymmetricAttribute(UA_Client *client, const UA_NodeId nodeId, UA_Boolean *outSymmetric) { return __UA_Client_readAttribute(client, &nodeId, UA_ATTRIBUTEID_SYMMETRIC, outSymmetric, &UA_TYPES[UA_TYPES_BOOLEAN]); } static UA_INLINE UA_StatusCode UA_Client_readInverseNameAttribute(UA_Client *client, const UA_NodeId nodeId, UA_LocalizedText *outInverseName) { return __UA_Client_readAttribute(client, &nodeId, UA_ATTRIBUTEID_INVERSENAME, outInverseName, &UA_TYPES[UA_TYPES_LOCALIZEDTEXT]); } static UA_INLINE UA_StatusCode UA_Client_readContainsNoLoopsAttribute(UA_Client *client, const UA_NodeId nodeId, UA_Boolean *outContainsNoLoops) { return __UA_Client_readAttribute(client, &nodeId, UA_ATTRIBUTEID_CONTAINSNOLOOPS, outContainsNoLoops, &UA_TYPES[UA_TYPES_BOOLEAN]); } static UA_INLINE UA_StatusCode UA_Client_readEventNotifierAttribute(UA_Client *client, const UA_NodeId nodeId, UA_Byte *outEventNotifier) { return __UA_Client_readAttribute(client, &nodeId, UA_ATTRIBUTEID_EVENTNOTIFIER, outEventNotifier, &UA_TYPES[UA_TYPES_BYTE]); } static UA_INLINE UA_StatusCode UA_Client_readValueAttribute(UA_Client *client, const UA_NodeId nodeId, UA_Variant *outValue) { return __UA_Client_readAttribute(client, &nodeId, UA_ATTRIBUTEID_VALUE, outValue, &UA_TYPES[UA_TYPES_VARIANT]); } static UA_INLINE UA_StatusCode UA_Client_readDataTypeAttribute(UA_Client *client, const UA_NodeId nodeId, UA_NodeId *outDataType) { return __UA_Client_readAttribute(client, &nodeId, UA_ATTRIBUTEID_DATATYPE, outDataType, &UA_TYPES[UA_TYPES_NODEID]); } static UA_INLINE UA_StatusCode UA_Client_readValueRankAttribute(UA_Client *client, const UA_NodeId nodeId, UA_Int32 *outValueRank) { return __UA_Client_readAttribute(client, &nodeId, UA_ATTRIBUTEID_VALUERANK, outValueRank, &UA_TYPES[UA_TYPES_INT32]); } UA_StatusCode UA_EXPORT UA_Client_readArrayDimensionsAttribute(UA_Client *client, const UA_NodeId nodeId, UA_Int32 **outArrayDimensions, size_t *outArrayDimensionsSize); static UA_INLINE UA_StatusCode UA_Client_readAccessLevelAttribute(UA_Client *client, const UA_NodeId nodeId, UA_UInt32 *outAccessLevel) { return __UA_Client_readAttribute(client, &nodeId, UA_ATTRIBUTEID_ACCESSLEVEL, outAccessLevel, &UA_TYPES[UA_TYPES_UINT32]); } static UA_INLINE UA_StatusCode UA_Client_readUserAccessLevelAttribute(UA_Client *client, const UA_NodeId nodeId, UA_UInt32 *outUserAccessLevel) { return __UA_Client_readAttribute(client, &nodeId, UA_ATTRIBUTEID_USERACCESSLEVEL, outUserAccessLevel, &UA_TYPES[UA_TYPES_UINT32]); } static UA_INLINE UA_StatusCode UA_Client_readMinimumSamplingIntervalAttribute(UA_Client *client, const UA_NodeId nodeId, UA_Double *outMinimumSamplingInterval) { return __UA_Client_readAttribute(client, &nodeId, UA_ATTRIBUTEID_MINIMUMSAMPLINGINTERVAL, outMinimumSamplingInterval, &UA_TYPES[UA_TYPES_DOUBLE]); } static UA_INLINE UA_StatusCode UA_Client_readHistorizingAttribute(UA_Client *client, const UA_NodeId nodeId, UA_Boolean *outHistorizing) { return __UA_Client_readAttribute(client, &nodeId, UA_ATTRIBUTEID_HISTORIZING, outHistorizing, &UA_TYPES[UA_TYPES_BOOLEAN]); } static UA_INLINE UA_StatusCode UA_Client_readExecutableAttribute(UA_Client *client, const UA_NodeId nodeId, UA_Boolean *outExecutable) { return __UA_Client_readAttribute(client, &nodeId, UA_ATTRIBUTEID_EXECUTABLE, outExecutable, &UA_TYPES[UA_TYPES_BOOLEAN]); } static UA_INLINE UA_StatusCode UA_Client_readUserExecutableAttribute(UA_Client *client, const UA_NodeId nodeId, UA_Boolean *outUserExecutable) { return __UA_Client_readAttribute(client, &nodeId, UA_ATTRIBUTEID_USEREXECUTABLE, outUserExecutable, &UA_TYPES[UA_TYPES_BOOLEAN]); } /** * Write Attributes * ================ * The following functions can be use to write a single node attribute at a * time. Use the regular write service to write several attributes at once. */ /* Don't call this function, use the typed versions */ UA_StatusCode UA_EXPORT __UA_Client_writeAttribute(UA_Client *client, const UA_NodeId *nodeId, UA_AttributeId attributeId, const void *in, const UA_DataType *inDataType); static UA_INLINE UA_StatusCode UA_Client_writeNodeIdAttribute(UA_Client *client, const UA_NodeId nodeId, const UA_NodeId *newNodeId) { return __UA_Client_writeAttribute(client, &nodeId, UA_ATTRIBUTEID_NODEID, newNodeId, &UA_TYPES[UA_TYPES_NODEID]); } static UA_INLINE UA_StatusCode UA_Client_writeNodeClassAttribute(UA_Client *client, const UA_NodeId nodeId, const UA_NodeClass *newNodeClass) { return __UA_Client_writeAttribute(client, &nodeId, UA_ATTRIBUTEID_NODECLASS, newNodeClass, &UA_TYPES[UA_TYPES_NODECLASS]); } static UA_INLINE UA_StatusCode UA_Client_writeBrowseNameAttribute(UA_Client *client, const UA_NodeId nodeId, const UA_QualifiedName *newBrowseName) { return __UA_Client_writeAttribute(client, &nodeId, UA_ATTRIBUTEID_BROWSENAME, newBrowseName, &UA_TYPES[UA_TYPES_QUALIFIEDNAME]); } static UA_INLINE UA_StatusCode UA_Client_writeDisplayNameAttribute(UA_Client *client, const UA_NodeId nodeId, const UA_LocalizedText *newDisplayName) { return __UA_Client_writeAttribute(client, &nodeId, UA_ATTRIBUTEID_DISPLAYNAME, newDisplayName, &UA_TYPES[UA_TYPES_LOCALIZEDTEXT]); } static UA_INLINE UA_StatusCode UA_Client_writeDescriptionAttribute(UA_Client *client, const UA_NodeId nodeId, const UA_LocalizedText *newDescription) { return __UA_Client_writeAttribute(client, &nodeId, UA_ATTRIBUTEID_DESCRIPTION, newDescription, &UA_TYPES[UA_TYPES_LOCALIZEDTEXT]); } static UA_INLINE UA_StatusCode UA_Client_writeWriteMaskAttribute(UA_Client *client, const UA_NodeId nodeId, const UA_UInt32 *newWriteMask) { return __UA_Client_writeAttribute(client, &nodeId, UA_ATTRIBUTEID_WRITEMASK, newWriteMask, &UA_TYPES[UA_TYPES_UINT32]); } static UA_INLINE UA_StatusCode UA_Client_writeUserWriteMaskAttribute(UA_Client *client, const UA_NodeId nodeId, const UA_UInt32 *newUserWriteMask) { return __UA_Client_writeAttribute(client, &nodeId, UA_ATTRIBUTEID_USERWRITEMASK, newUserWriteMask, &UA_TYPES[UA_TYPES_UINT32]); } static UA_INLINE UA_StatusCode UA_Client_writeIsAbstractAttribute(UA_Client *client, const UA_NodeId nodeId, const UA_Boolean *newIsAbstract) { return __UA_Client_writeAttribute(client, &nodeId, UA_ATTRIBUTEID_ISABSTRACT, newIsAbstract, &UA_TYPES[UA_TYPES_BOOLEAN]); } static UA_INLINE UA_StatusCode UA_Client_writeSymmetricAttribute(UA_Client *client, const UA_NodeId nodeId, const UA_Boolean *newSymmetric) { return __UA_Client_writeAttribute(client, &nodeId, UA_ATTRIBUTEID_SYMMETRIC, newSymmetric, &UA_TYPES[UA_TYPES_BOOLEAN]); } static UA_INLINE UA_StatusCode UA_Client_writeInverseNameAttribute(UA_Client *client, const UA_NodeId nodeId, const UA_LocalizedText *newInverseName) { return __UA_Client_writeAttribute(client, &nodeId, UA_ATTRIBUTEID_INVERSENAME, newInverseName, &UA_TYPES[UA_TYPES_LOCALIZEDTEXT]); } static UA_INLINE UA_StatusCode UA_Client_writeContainsNoLoopsAttribute(UA_Client *client, const UA_NodeId nodeId, const UA_Boolean *newContainsNoLoops) { return __UA_Client_writeAttribute(client, &nodeId, UA_ATTRIBUTEID_CONTAINSNOLOOPS, newContainsNoLoops, &UA_TYPES[UA_TYPES_BOOLEAN]); } static UA_INLINE UA_StatusCode UA_Client_writeEventNotifierAttribute(UA_Client *client, const UA_NodeId nodeId, const UA_Byte *newEventNotifier) { return __UA_Client_writeAttribute(client, &nodeId, UA_ATTRIBUTEID_EVENTNOTIFIER, newEventNotifier, &UA_TYPES[UA_TYPES_BYTE]); } static UA_INLINE UA_StatusCode UA_Client_writeValueAttribute(UA_Client *client, const UA_NodeId nodeId, const UA_Variant *newValue) { return __UA_Client_writeAttribute(client, &nodeId, UA_ATTRIBUTEID_VALUE, newValue, &UA_TYPES[UA_TYPES_VARIANT]); } static UA_INLINE UA_StatusCode UA_Client_writeDataTypeAttribute(UA_Client *client, const UA_NodeId nodeId, const UA_NodeId *newDataType) { return __UA_Client_writeAttribute(client, &nodeId, UA_ATTRIBUTEID_DATATYPE, newDataType, &UA_TYPES[UA_TYPES_NODEID]); } static UA_INLINE UA_StatusCode UA_Client_writeValueRankAttribute(UA_Client *client, const UA_NodeId nodeId, const UA_Int32 *newValueRank) { return __UA_Client_writeAttribute(client, &nodeId, UA_ATTRIBUTEID_VALUERANK, newValueRank, &UA_TYPES[UA_TYPES_INT32]); } UA_StatusCode UA_EXPORT UA_Client_writeArrayDimensionsAttribute(UA_Client *client, const UA_NodeId nodeId, const UA_Int32 *newArrayDimensions, size_t newArrayDimensionsSize); static UA_INLINE UA_StatusCode UA_Client_writeAccessLevelAttribute(UA_Client *client, const UA_NodeId nodeId, const UA_UInt32 *newAccessLevel) { return __UA_Client_writeAttribute(client, &nodeId, UA_ATTRIBUTEID_ACCESSLEVEL, newAccessLevel, &UA_TYPES[UA_TYPES_UINT32]); } static UA_INLINE UA_StatusCode UA_Client_writeUserAccessLevelAttribute(UA_Client *client, const UA_NodeId nodeId, const UA_UInt32 *newUserAccessLevel) { return __UA_Client_writeAttribute(client, &nodeId, UA_ATTRIBUTEID_USERACCESSLEVEL, newUserAccessLevel, &UA_TYPES[UA_TYPES_UINT32]); } static UA_INLINE UA_StatusCode UA_Client_writeMinimumSamplingIntervalAttribute(UA_Client *client, const UA_NodeId nodeId, const UA_Double *newMinimumSamplingInterval) { return __UA_Client_writeAttribute(client, &nodeId, UA_ATTRIBUTEID_MINIMUMSAMPLINGINTERVAL, newMinimumSamplingInterval, &UA_TYPES[UA_TYPES_DOUBLE]); } static UA_INLINE UA_StatusCode UA_Client_writeHistorizingAttribute(UA_Client *client, const UA_NodeId nodeId, const UA_Boolean *newHistorizing) { return __UA_Client_writeAttribute(client, &nodeId, UA_ATTRIBUTEID_HISTORIZING, newHistorizing, &UA_TYPES[UA_TYPES_BOOLEAN]); } static UA_INLINE UA_StatusCode UA_Client_writeExecutableAttribute(UA_Client *client, const UA_NodeId nodeId, const UA_Boolean *newExecutable) { return __UA_Client_writeAttribute(client, &nodeId, UA_ATTRIBUTEID_EXECUTABLE, newExecutable, &UA_TYPES[UA_TYPES_BOOLEAN]); } static UA_INLINE UA_StatusCode UA_Client_writeUserExecutableAttribute(UA_Client *client, const UA_NodeId nodeId, const UA_Boolean *newUserExecutable) { return __UA_Client_writeAttribute(client, &nodeId, UA_ATTRIBUTEID_USEREXECUTABLE, newUserExecutable, &UA_TYPES[UA_TYPES_BOOLEAN]); } /** * Method Calling * ============== */ UA_StatusCode UA_EXPORT UA_Client_call(UA_Client *client, const UA_NodeId objectId, const UA_NodeId methodId, size_t inputSize, const UA_Variant *input, size_t *outputSize, UA_Variant **output); /** * Node Management * =============== */ UA_StatusCode UA_EXPORT UA_Client_addReference(UA_Client *client, const UA_NodeId sourceNodeId, const UA_NodeId referenceTypeId, UA_Boolean isForward, const UA_String targetServerUri, const UA_ExpandedNodeId targetNodeId, UA_NodeClass targetNodeClass); UA_StatusCode UA_EXPORT UA_Client_deleteReference(UA_Client *client, const UA_NodeId sourceNodeId, const UA_NodeId referenceTypeId, UA_Boolean isForward, const UA_ExpandedNodeId targetNodeId, UA_Boolean deleteBidirectional); UA_StatusCode UA_EXPORT UA_Client_deleteNode(UA_Client *client, const UA_NodeId nodeId, UA_Boolean deleteTargetReferences); /* Don't call this function, use the typed versions */ UA_StatusCode UA_EXPORT __UA_Client_addNode(UA_Client *client, const UA_NodeClass nodeClass, const UA_NodeId requestedNewNodeId, const UA_NodeId parentNodeId, const UA_NodeId referenceTypeId, const UA_QualifiedName browseName, const UA_NodeId typeDefinition, const UA_NodeAttributes *attr, const UA_DataType *attributeType, UA_NodeId *outNewNodeId); static UA_INLINE UA_StatusCode UA_Client_addVariableNode(UA_Client *client, const UA_NodeId requestedNewNodeId, const UA_NodeId parentNodeId, const UA_NodeId referenceTypeId, const UA_QualifiedName browseName, const UA_NodeId typeDefinition, const UA_VariableAttributes attr, UA_NodeId *outNewNodeId) { return __UA_Client_addNode(client, UA_NODECLASS_VARIABLE, requestedNewNodeId, parentNodeId, referenceTypeId, browseName, typeDefinition, (const UA_NodeAttributes*)&attr, &UA_TYPES[UA_TYPES_VARIABLEATTRIBUTES], outNewNodeId); } static UA_INLINE UA_StatusCode UA_Client_addVariableTypeNode(UA_Client *client, const UA_NodeId requestedNewNodeId, const UA_NodeId parentNodeId, const UA_NodeId referenceTypeId, const UA_QualifiedName browseName, const UA_VariableTypeAttributes attr, UA_NodeId *outNewNodeId) { return __UA_Client_addNode(client, UA_NODECLASS_VARIABLETYPE, requestedNewNodeId, parentNodeId, referenceTypeId, browseName, UA_NODEID_NULL, (const UA_NodeAttributes*)&attr, &UA_TYPES[UA_TYPES_VARIABLETYPEATTRIBUTES], outNewNodeId); } static UA_INLINE UA_StatusCode UA_Client_addObjectNode(UA_Client *client, const UA_NodeId requestedNewNodeId, const UA_NodeId parentNodeId, const UA_NodeId referenceTypeId, const UA_QualifiedName browseName, const UA_NodeId typeDefinition, const UA_ObjectAttributes attr, UA_NodeId *outNewNodeId) { return __UA_Client_addNode(client, UA_NODECLASS_OBJECT, requestedNewNodeId, parentNodeId, referenceTypeId, browseName, typeDefinition, (const UA_NodeAttributes*)&attr, &UA_TYPES[UA_TYPES_OBJECTATTRIBUTES], outNewNodeId); } static UA_INLINE UA_StatusCode UA_Client_addObjectTypeNode(UA_Client *client, const UA_NodeId requestedNewNodeId, const UA_NodeId parentNodeId, const UA_NodeId referenceTypeId, const UA_QualifiedName browseName, const UA_ObjectTypeAttributes attr, UA_NodeId *outNewNodeId) { return __UA_Client_addNode(client, UA_NODECLASS_OBJECTTYPE, requestedNewNodeId, parentNodeId, referenceTypeId, browseName, UA_NODEID_NULL, (const UA_NodeAttributes*)&attr, &UA_TYPES[UA_TYPES_OBJECTTYPEATTRIBUTES], outNewNodeId); } static UA_INLINE UA_StatusCode UA_Client_addViewNode(UA_Client *client, const UA_NodeId requestedNewNodeId, const UA_NodeId parentNodeId, const UA_NodeId referenceTypeId, const UA_QualifiedName browseName, const UA_ViewAttributes attr, UA_NodeId *outNewNodeId) { return __UA_Client_addNode(client, UA_NODECLASS_VIEW, requestedNewNodeId, parentNodeId, referenceTypeId, browseName, UA_NODEID_NULL, (const UA_NodeAttributes*)&attr, &UA_TYPES[UA_TYPES_VIEWATTRIBUTES], outNewNodeId); } static UA_INLINE UA_StatusCode UA_Client_addReferenceTypeNode(UA_Client *client, const UA_NodeId requestedNewNodeId, const UA_NodeId parentNodeId, const UA_NodeId referenceTypeId, const UA_QualifiedName browseName, const UA_ReferenceTypeAttributes attr, UA_NodeId *outNewNodeId) { return __UA_Client_addNode(client, UA_NODECLASS_REFERENCETYPE, requestedNewNodeId, parentNodeId, referenceTypeId, browseName, UA_NODEID_NULL, (const UA_NodeAttributes*)&attr, &UA_TYPES[UA_TYPES_REFERENCETYPEATTRIBUTES], outNewNodeId); } static UA_INLINE UA_StatusCode UA_Client_addDataTypeNode(UA_Client *client, const UA_NodeId requestedNewNodeId, const UA_NodeId parentNodeId, const UA_NodeId referenceTypeId, const UA_QualifiedName browseName, const UA_DataTypeAttributes attr, UA_NodeId *outNewNodeId) { return __UA_Client_addNode(client, UA_NODECLASS_DATATYPE, requestedNewNodeId, parentNodeId, referenceTypeId, browseName, UA_NODEID_NULL, (const UA_NodeAttributes*)&attr, &UA_TYPES[UA_TYPES_DATATYPEATTRIBUTES], outNewNodeId); } static UA_INLINE UA_StatusCode UA_Client_addMethodNode(UA_Client *client, const UA_NodeId requestedNewNodeId, const UA_NodeId parentNodeId, const UA_NodeId referenceTypeId, const UA_QualifiedName browseName, const UA_MethodAttributes attr, UA_NodeId *outNewNodeId) { return __UA_Client_addNode(client, UA_NODECLASS_METHOD, requestedNewNodeId, parentNodeId, referenceTypeId, browseName, UA_NODEID_NULL, (const UA_NodeAttributes*)&attr, &UA_TYPES[UA_TYPES_METHODATTRIBUTES], outNewNodeId); } /** * Subscriptions Handling * ====================== */ #ifdef UA_ENABLE_SUBSCRIPTIONS typedef struct { UA_Double requestedPublishingInterval; UA_UInt32 requestedLifetimeCount; UA_UInt32 requestedMaxKeepAliveCount; UA_UInt32 maxNotificationsPerPublish; UA_Boolean publishingEnabled; UA_Byte priority; } UA_SubscriptionSettings; extern const UA_EXPORT UA_SubscriptionSettings UA_SubscriptionSettings_standard; UA_StatusCode UA_EXPORT UA_Client_Subscriptions_new(UA_Client *client, UA_SubscriptionSettings settings, UA_UInt32 *newSubscriptionId); UA_StatusCode UA_EXPORT UA_Client_Subscriptions_remove(UA_Client *client, UA_UInt32 subscriptionId); UA_StatusCode UA_EXPORT UA_Client_Subscriptions_manuallySendPublishRequest(UA_Client *client); typedef void (*UA_MonitoredItemHandlingFunction) (UA_UInt32 handle, UA_DataValue *value, void *context); UA_StatusCode UA_EXPORT UA_Client_Subscriptions_addMonitoredItem(UA_Client *client, UA_UInt32 subscriptionId, UA_NodeId nodeId, UA_UInt32 attributeID, UA_MonitoredItemHandlingFunction handlingFunction, void *handlingContext, UA_UInt32 *newMonitoredItemId); UA_StatusCode UA_EXPORT UA_Client_Subscriptions_removeMonitoredItem(UA_Client *client, UA_UInt32 subscriptionId, UA_UInt32 monitoredItemId); #endif /** * Misc Highlevel Functionality * ============================ */ /* Get the namespace-index of a namespace-URI * * @param client The UA_Client struct for this connection * @param namespaceUri The interested namespace URI * @param namespaceIndex The namespace index of the URI. The value is unchanged * in case of an error * @return Indicates whether the operation succeeded or returns an error code */ UA_StatusCode UA_EXPORT UA_Client_NamespaceGetIndex(UA_Client *client, UA_String *namespaceUri, UA_UInt16 *namespaceIndex); #ifndef HAVE_NODEITER_CALLBACK #define HAVE_NODEITER_CALLBACK /* Iterate over all nodes referenced by parentNodeId by calling the callback function for each child node */ typedef UA_StatusCode (*UA_NodeIteratorCallback)(UA_NodeId childId, UA_Boolean isInverse, UA_NodeId referenceTypeId, void *handle); #endif UA_StatusCode UA_EXPORT UA_Client_forEachChildNodeCall(UA_Client *client, UA_NodeId parentNodeId, UA_NodeIteratorCallback callback, void *handle) ; #ifdef __cplusplus } // extern "C" #endif /*********************************** amalgamated original file "/home/wn/Sources/open62541-open62541-395ce48/plugins/networklayer_tcp.h" ***********************************/ /* * This work is licensed under a Creative Commons CCZero 1.0 Universal License. * See http://creativecommons.org/publicdomain/zero/1.0/ for more information. */ #ifdef __cplusplus extern "C" { #endif UA_ServerNetworkLayer UA_EXPORT UA_ServerNetworkLayerTCP(UA_ConnectionConfig conf, UA_UInt16 port); UA_Connection UA_EXPORT UA_ClientConnectionTCP(UA_ConnectionConfig conf, const char *endpointUrl, UA_Logger logger); #ifdef __cplusplus } // extern "C" #endif /*********************************** amalgamated original file "/home/wn/Sources/open62541-open62541-395ce48/plugins/logger_stdout.h" ***********************************/ /* * This work is licensed under a Creative Commons CCZero 1.0 Universal License. * See http://creativecommons.org/publicdomain/zero/1.0/ for more information. */ #ifdef __cplusplus extern "C" { #endif UA_EXPORT void Logger_Stdout(UA_LogLevel level, UA_LogCategory category, const char *msg, ...); #ifdef __cplusplus } #endif /*********************************** amalgamated original file "/home/wn/Sources/open62541-open62541-395ce48/plugins/ua_config_standard.h" ***********************************/ /* * This work is licensed under a Creative Commons CCZero 1.0 Universal License. * See http://creativecommons.org/publicdomain/zero/1.0/ for more information. */ #ifdef __cplusplus extern "C" { #endif extern UA_EXPORT const UA_ServerConfig UA_ServerConfig_standard; extern UA_EXPORT const UA_ClientConfig UA_ClientConfig_standard; #ifdef __cplusplus } #endif #ifdef __cplusplus } // extern "C" #endif #endif /* OPEN62541_H_ */