10#ifndef UA_SERVER_NODES_H_
11#define UA_SERVER_NODES_H_
26#ifdef UA_ENABLE_SUBSCRIPTIONS
36 const UA_NodeId *sessionId,
void *sessionContext,
37 const UA_NodeId *nodeId,
void **nodeContext);
42 const UA_NodeId *sessionId,
void *sessionContext,
43 const UA_NodeId *nodeId,
void *nodeContext);
83 const UA_NodeId *sessionId,
void *sessionContext,
94 const UA_NodeId *sessionId,
void *sessionContext,
95 const UA_NodeId *typeNodeId,
void *typeNodeContext,
96 const UA_NodeId *nodeId,
void **nodeContext);
100 const UA_NodeId *sessionId,
void *sessionContext,
101 const UA_NodeId *typeNodeId,
void *typeNodeContext,
102 const UA_NodeId *nodeId,
void **nodeContext);
106#define UA_REFERENCETYPEINDEX_REFERENCES 0
107#define UA_REFERENCETYPEINDEX_HASSUBTYPE 1
108#define UA_REFERENCETYPEINDEX_AGGREGATES 2
109#define UA_REFERENCETYPEINDEX_HIERARCHICALREFERENCES 3
110#define UA_REFERENCETYPEINDEX_NONHIERARCHICALREFERENCES 4
111#define UA_REFERENCETYPEINDEX_HASCHILD 5
112#define UA_REFERENCETYPEINDEX_ORGANIZES 6
113#define UA_REFERENCETYPEINDEX_HASEVENTSOURCE 7
114#define UA_REFERENCETYPEINDEX_HASMODELLINGRULE 8
115#define UA_REFERENCETYPEINDEX_HASENCODING 9
116#define UA_REFERENCETYPEINDEX_HASDESCRIPTION 10
117#define UA_REFERENCETYPEINDEX_HASTYPEDEFINITION 11
118#define UA_REFERENCETYPEINDEX_GENERATESEVENT 12
119#define UA_REFERENCETYPEINDEX_HASPROPERTY 13
120#define UA_REFERENCETYPEINDEX_HASCOMPONENT 14
121#define UA_REFERENCETYPEINDEX_HASNOTIFIER 15
122#define UA_REFERENCETYPEINDEX_HASORDEREDCOMPONENT 16
123#define UA_REFERENCETYPEINDEX_HASINTERFACE 17
126#define UA_REFERENCETYPESET_MAX 128
141 UA_Byte i = index / 32, j = index % 32;
143 UA_ReferenceTypeSet_init(&set);
159 UA_Byte i = index / 32, j = index % 32;
290#ifdef UA_ENABLE_SUBSCRIPTIONS
317 void *sessionContext,
const UA_NodeId *nodeid,
336 void *sessionContext,
const UA_NodeId *nodeId,
376 void *sessionContext,
const UA_NodeId *nodeId,
377 void *nodeContext,
UA_Boolean includeSourceTimeStamp,
401 void *sessionContext,
const UA_NodeId *nodeId,
413 void *sessionContext,
const UA_NodeId *nodeid,
431 void *sessionContext,
const UA_NodeId *nodeId,
458#define UA_NODE_VARIABLEATTRIBUTES \
460 UA_NodeId dataType; \
461 UA_Int32 valueRank; \
462 size_t arrayDimensionsSize; \
463 UA_UInt32 *arrayDimensions; \
465 UA_ValueBackend valueBackend; \
468 UA_ValueSource valueSource; \
471 UA_DataValue value; \
472 UA_ValueCallback callback; \
474 UA_DataSource dataSource; \
507 void *sessionContext,
const UA_NodeId *methodId,
508 void *methodContext,
const UA_NodeId *objectId,
509 void *objectContext,
size_t inputSize,
519#if UA_MULTITHREADING >= 100
590 void (*clear)(
void *nsCtx);
604 void (*releaseNode)(
void *nsCtx,
const UA_Node *node);
#define _UA_BEGIN_DECLS
#undef UA_DEBUG_DUMP_PKGS
void UA_Node_deleteReferences(UA_Node *node)
Delete all references of the node.
UA_Order UA_NodePointer_order(UA_NodePointer p1, UA_NodePointer p2)
UA_NodePointer UA_NodePointer_fromNodeId(const UA_NodeId *id)
Cannot fail.
void(* UA_NodestoreVisitor)(void *visitorCtx, const UA_Node *node)
UA_NodeId UA_NodePointer_toNodeId(UA_NodePointer np)
Can point to the memory from the NodePointer.
UA_StatusCode UA_Node_setAttributes(UA_Node *node, const void *attributes, const UA_DataType *attributeType)
Attributes must be of a matching type (VariableAttributes, ObjectAttributes, and so on).
UA_EXPORT UA_StatusCode UA_NodeReferenceKind_switch(UA_NodeReferenceKind *rk)
Switch between array and tree representation.
void UA_Node_deleteReferencesSubset(UA_Node *node, const UA_ReferenceTypeSet *keepSet)
Deletes references from the node which are not matching any type in the given array.
UA_EXPORT UA_Node * UA_Node_copy_alloc(const UA_Node *src)
Allocate new node and copy the values from src.
UA_EXPORT const UA_ReferenceTarget * UA_NodeReferenceKind_iterate(const UA_NodeReferenceKind *rk, const UA_ReferenceTarget *prev)
Iterate over the references.
UA_NodePointer UA_NodePointer_fromExpandedNodeId(const UA_ExpandedNodeId *id)
Cannot fail.
#define UA_REFERENCETYPESET_MAX
The maximum number of ReferrenceTypes.
@ UA_VALUEBACKENDTYPE_INTERNAL
@ UA_VALUEBACKENDTYPE_DATA_SOURCE_CALLBACK
@ UA_VALUEBACKENDTYPE_EXTERNAL
@ UA_VALUEBACKENDTYPE_NONE
UA_StatusCode UA_NodePointer_copy(UA_NodePointer in, UA_NodePointer *out)
Makes a deep copy.
void UA_NodePointer_clear(UA_NodePointer *np)
NodeId and ExpandedNodeId targets are freed.
UA_StatusCode(* UA_MethodCallback)(UA_Server *server, const UA_NodeId *sessionId, void *sessionContext, const UA_NodeId *methodId, void *methodContext, const UA_NodeId *objectId, void *objectContext, size_t inputSize, const UA_Variant *input, size_t outputSize, UA_Variant *output)
UA_StatusCode UA_Node_copy(const UA_Node *src, UA_Node *dst)
Reset the destination node and copy the content of the source.
void UA_Node_clear(UA_Node *node)
Remove all malloc'ed members of the node and reset.
UA_ExpandedNodeId UA_NodePointer_toExpandedNodeId(UA_NodePointer np)
Can point to the memory from the NodePointer.
UA_StatusCode UA_Node_deleteReference(UA_Node *node, UA_Byte refTypeIndex, UA_Boolean isForward, const UA_ExpandedNodeId *targetNodeId)
Delete a single reference from the node.
UA_Boolean UA_NodePointer_isLocal(UA_NodePointer np)
Test if an ExpandedNodeId or a local NodeId.
UA_StatusCode UA_Node_addReference(UA_Node *node, UA_Byte refTypeIndex, UA_Boolean isForward, const UA_ExpandedNodeId *targetNodeId, UA_UInt32 targetBrowseNameHash)
Add a single reference to the node.
#define UA_NODE_VARIABLEATTRIBUTES
UA_ValueSource
Indicates whether a variable contains data inline or whether it points to an external data source.
@ UA_VALUESOURCE_DATASOURCE
Every Node starts with these attributes.
UA_NodeReferenceKind * references
UA_LocalizedText description
UA_QualifiedName browseName
UA_MonitoredItem * monitoredItems
UA_LocalizedText displayName
List of reference targets with the same reference type and direction.
struct aa_entry * idTreeRoot
UA_ReferenceTarget * array
struct aa_entry * nameTreeRoot
UA_Byte referenceTypeIndex
UA_NodeTypeLifecycle lifecycle
UA_ReferenceTarget target
UA_Byte referenceTypeIndex
UA_LocalizedText inverseName
UA_ReferenceTypeSet subTypes
UA_ValueBackendType backendType
UA_ExternalValueCallback callback
UA_ValueCallback callback
UA_Double minimumSamplingInterval
UA_NodeTypeLifecycle lifecycle
UA_Boolean containsNoLoops
_UA_BEGIN_DECLS typedef bool UA_Boolean
This Source Code Form is subject to the terms of the Mozilla Public License, v.
UA_StatusCode deleteNode(UA_Server *server, const UA_NodeId nodeId, UA_Boolean deleteReferences)
Internal function calls, without locks.
Tagged Pointer structure.
const UA_ExpandedNodeId * expandedId
UA_VariableNode variableNode
UA_VariableTypeNode variableTypeNode
UA_DataTypeNode dataTypeNode
UA_ObjectTypeNode objectTypeNode
UA_ReferenceTypeNode referenceTypeNode