10#ifndef UA_NODESTORE_H_
11#define UA_NODESTORE_H_
25#ifdef UA_ENABLE_SUBSCRIPTIONS
35 const UA_NodeId *sessionId,
void *sessionContext,
41 const UA_NodeId *sessionId,
void *sessionContext,
82 const UA_NodeId *sessionId,
void *sessionContext,
93 const UA_NodeId *sessionId,
void *sessionContext,
94 const UA_NodeId *typeNodeId,
void *typeNodeContext,
99 const UA_NodeId *sessionId,
void *sessionContext,
100 const UA_NodeId *typeNodeId,
void *typeNodeContext,
105#define UA_REFERENCETYPEINDEX_REFERENCES 0
106#define UA_REFERENCETYPEINDEX_HASSUBTYPE 1
107#define UA_REFERENCETYPEINDEX_AGGREGATES 2
108#define UA_REFERENCETYPEINDEX_HIERARCHICALREFERENCES 3
109#define UA_REFERENCETYPEINDEX_NONHIERARCHICALREFERENCES 4
110#define UA_REFERENCETYPEINDEX_HASCHILD 5
111#define UA_REFERENCETYPEINDEX_ORGANIZES 6
112#define UA_REFERENCETYPEINDEX_HASEVENTSOURCE 7
113#define UA_REFERENCETYPEINDEX_HASMODELLINGRULE 8
114#define UA_REFERENCETYPEINDEX_HASENCODING 9
115#define UA_REFERENCETYPEINDEX_HASDESCRIPTION 10
116#define UA_REFERENCETYPEINDEX_HASTYPEDEFINITION 11
117#define UA_REFERENCETYPEINDEX_GENERATESEVENT 12
118#define UA_REFERENCETYPEINDEX_HASPROPERTY 13
119#define UA_REFERENCETYPEINDEX_HASCOMPONENT 14
120#define UA_REFERENCETYPEINDEX_HASNOTIFIER 15
121#define UA_REFERENCETYPEINDEX_HASORDEREDCOMPONENT 16
122#define UA_REFERENCETYPEINDEX_HASINTERFACE 17
125#define UA_REFERENCETYPESET_MAX 128
140 UA_Byte i = index / 32, j = index % 32;
142 UA_ReferenceTypeSet_init(&set);
158 UA_Byte i = index / 32, j = index % 32;
322#ifdef UA_ENABLE_SUBSCRIPTIONS
349 void *sessionContext,
const UA_NodeId *nodeid,
409 void *nodeContext,
UA_Boolean includeSourceTimeStamp,
445 void *sessionContext,
const UA_NodeId *nodeid,
490#define UA_NODE_VARIABLEATTRIBUTES \
492 UA_NodeId dataType; \
493 UA_Int32 valueRank; \
494 size_t arrayDimensionsSize; \
495 UA_UInt32 *arrayDimensions; \
497 UA_ValueBackend valueBackend; \
500 UA_ValueSource valueSource; \
503 UA_DataValue value; \
504 UA_ValueCallback callback; \
506 UA_DataSource dataSource; \
539 void *sessionContext,
const UA_NodeId *methodId,
540 void *methodContext,
const UA_NodeId *objectId,
541 void *objectContext,
size_t inputSize,
551#if UA_MULTITHREADING >= 100
622 void (*clear)(
void *nsCtx);
630 void (*deleteNode)(
void *nsCtx,
UA_Node *node);
661 void (*releaseNode)(
void *nsCtx,
const UA_Node *node);
struct UA_Server UA_Server
#define _UA_BEGIN_DECLS
#undef UA_DEBUG_DUMP_PKGS
void UA_Node_deleteReferences(UA_Node *node)
Delete all references of the node.
UA_EXPORT const UA_ReferenceTarget * UA_NodeReferenceKind_findTarget(const UA_NodeReferenceKind *rk, const UA_ExpandedNodeId *targetId)
Returns the entry for the targetId or NULL if not found.
UA_Order UA_NodePointer_order(UA_NodePointer p1, UA_NodePointer p2)
UA_EXPORT void * UA_NodeReferenceKind_iterate(UA_NodeReferenceKind *rk, UA_NodeReferenceKind_iterateCallback callback, void *context)
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_NodePointer UA_NodePointer_fromExpandedNodeId(const UA_ExpandedNodeId *id)
Cannot fail.
struct UA_MonitoredItem UA_MonitoredItem
#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_EXPORT const UA_ReferenceTypeSet UA_REFERENCETYPESET_NONE
void *(* UA_NodeReferenceKind_iterateCallback)(void *context, UA_ReferenceTarget *target)
Iterate over the references.
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_EXPORT const UA_ReferenceTypeSet UA_REFERENCETYPESET_ALL
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
Singly-linked LocalizedText list.
UA_LocalizedText localizedText
struct UA_LocalizedTextListEntry * next
Every Node starts with these attributes.
UA_LocalizedTextListEntry * description
UA_NodeReferenceKind * references
UA_LocalizedTextListEntry * displayName
UA_QualifiedName browseName
UA_MonitoredItem * monitoredItems
List of reference targets with the same reference type and direction.
UA_ReferenceTargetTreeElem * nameRoot
UA_ReferenceTarget * array
UA_ReferenceTargetTreeElem * idRoot
UA_Byte referenceTypeIndex
UA_NodeTypeLifecycle lifecycle
struct UA_ReferenceTargetTreeElem::@13 nameTreeEntry
struct UA_ReferenceTargetTreeElem::@12 idTreeEntry
struct UA_ReferenceTargetTreeElem * left
struct UA_ReferenceTargetTreeElem * right
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_BrowseDirection
BrowseDirection.
Tagged Pointer structure.
const UA_ExpandedNodeId * expandedId
UA_VariableNode variableNode
UA_VariableTypeNode variableTypeNode
UA_DataTypeNode dataTypeNode
UA_ObjectTypeNode objectTypeNode
UA_ReferenceTypeNode referenceTypeNode