123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159 |
- #ifndef UA_NODES_H_
- #define UA_NODES_H_
- #include "ua_server.h"
- #include "ua_types_generated.h"
- #include "ua_types_encoding_binary.h"
- #define UA_TYPE_HANDLING_FUNCTIONS(TYPE) \
- TYPE UA_EXPORT * TYPE##_new(void); \
- void UA_EXPORT TYPE##_init(TYPE * p); \
- void UA_EXPORT TYPE##_delete(TYPE * p); \
- void UA_EXPORT TYPE##_deleteMembers(TYPE * p); \
- UA_StatusCode UA_EXPORT TYPE##_copy(const TYPE *src, TYPE *dst);
- #define UA_STANDARD_NODEMEMBERS \
- UA_NodeId nodeId; \
- UA_NodeClass nodeClass; \
- UA_QualifiedName browseName; \
- UA_LocalizedText displayName; \
- UA_LocalizedText description; \
- UA_UInt32 writeMask; \
- UA_UInt32 userWriteMask; \
- UA_Int32 referencesSize; \
- UA_ReferenceNode *references;
- typedef struct {
- UA_STANDARD_NODEMEMBERS
- } UA_Node;
- void UA_Node_deleteAnyNodeClass(UA_Node *node);
- UA_Node * UA_Node_copyAnyNodeClass(const UA_Node *node);
- /**************/
- /* ObjectNode */
- /**************/
- typedef struct {
- UA_STANDARD_NODEMEMBERS
- UA_Byte eventNotifier;
- void *instanceHandle;
- } UA_ObjectNode;
- UA_TYPE_HANDLING_FUNCTIONS(UA_ObjectNode)
- /******************/
- /* ObjectTypeNode */
- /******************/
- typedef struct {
- UA_STANDARD_NODEMEMBERS
- UA_Boolean isAbstract;
- UA_ObjectInstanceManagement instanceManagement;
- } UA_ObjectTypeNode;
- UA_TYPE_HANDLING_FUNCTIONS(UA_ObjectTypeNode)
- typedef enum {
- UA_VALUESOURCE_VARIANT,
- UA_VALUESOURCE_DATASOURCE
- } UA_ValueSource;
- /****************/
- /* VariableNode */
- /****************/
- typedef struct {
- UA_STANDARD_NODEMEMBERS
- UA_Int32 valueRank; /**< n >= 1: the value is an array with the specified number of dimensions.
- n = 0: the value is an array with one or more dimensions.
- n = -1: the value is a scalar.
- n = -2: the value can be a scalar or an array with any number of dimensions.
- n = -3: the value can be a scalar or a one dimensional array. */
- UA_ValueSource valueSource;
- union {
- struct {
- UA_Variant value;
- UA_ValueCallback callback;
- } variant;
- UA_DataSource dataSource;
- } value;
- /* <--- similar to variabletypenodes up to there--->*/
- UA_Byte accessLevel;
- UA_Byte userAccessLevel;
- UA_Double minimumSamplingInterval;
- UA_Boolean historizing;
- } UA_VariableNode;
- UA_TYPE_HANDLING_FUNCTIONS(UA_VariableNode)
- /** Make a copy but leave out the references and the variable */
- UA_StatusCode UA_VariableNode_copyWithoutRefsAndVariable(const UA_VariableNode *src, UA_VariableNode *dst);
- /********************/
- /* VariableTypeNode */
- /********************/
- typedef struct {
- UA_STANDARD_NODEMEMBERS
- UA_Int32 valueRank;
- UA_ValueSource valueSource;
- union {
- struct {
- UA_Variant value;
- UA_ValueCallback callback;
- } variant;
- UA_DataSource dataSource;
- } value;
- /* <--- similar to variablenodes up to there--->*/
- UA_Boolean isAbstract;
- } UA_VariableTypeNode;
- UA_TYPE_HANDLING_FUNCTIONS(UA_VariableTypeNode)
- /*********************/
- /* ReferenceTypeNode */
- /*********************/
- typedef struct {
- UA_STANDARD_NODEMEMBERS
- UA_Boolean isAbstract;
- UA_Boolean symmetric;
- UA_LocalizedText inverseName;
- } UA_ReferenceTypeNode;
- UA_TYPE_HANDLING_FUNCTIONS(UA_ReferenceTypeNode)
- /***********************/
- /* ReferenceMethodNode */
- /***********************/
- typedef struct {
- UA_STANDARD_NODEMEMBERS
- UA_Boolean executable;
- UA_Boolean userExecutable;
- #ifdef ENABLE_METHODCALLS
- void *methodHandle;
- UA_MethodCallback attachedMethod;
- #endif
- } UA_MethodNode;
- UA_TYPE_HANDLING_FUNCTIONS(UA_MethodNode)
- /************/
- /* ViewNode */
- /************/
- typedef struct {
- UA_STANDARD_NODEMEMBERS
- UA_Byte eventNotifier;
- /* <-- the same as objectnode until here --> */
- UA_Boolean containsNoLoops;
- } UA_ViewNode;
- UA_TYPE_HANDLING_FUNCTIONS(UA_ViewNode)
- /****************/
- /* DataTypeNode */
- /****************/
- typedef struct {
- UA_STANDARD_NODEMEMBERS
- UA_Boolean isAbstract;
- } UA_DataTypeNode;
- UA_TYPE_HANDLING_FUNCTIONS(UA_DataTypeNode)
- #endif /* UA_NODES_H_ */
|