/home/travis/build/open62541/open62541/src/server/ua_nodestore.h
Go to the documentation of this file.
00001 #ifndef UA_NODESTORE_H_
00002 #define UA_NODESTORE_H_
00003 
00004 #include "ua_types_generated.h"
00005 #include "ua_nodes.h"
00006 
00028 struct UA_NodeStore;
00029 typedef struct UA_NodeStore UA_NodeStore;
00030 
00032 UA_NodeStore * UA_NodeStore_new(void);
00033 
00035 void UA_NodeStore_delete(UA_NodeStore *ns);
00036 
00044 UA_StatusCode UA_NodeStore_insert(UA_NodeStore *ns, UA_Node *node, const UA_Node **inserted);
00045 
00051 UA_StatusCode UA_NodeStore_replace(UA_NodeStore *ns, const UA_Node *oldNode, UA_Node *node, const UA_Node **inserted);
00052 
00057 UA_StatusCode UA_NodeStore_remove(UA_NodeStore *ns, const UA_NodeId *nodeid);
00058 
00064 const UA_Node * UA_NodeStore_get(const UA_NodeStore *ns, const UA_NodeId *nodeid);
00065 
00070 void UA_NodeStore_release(const UA_Node *managed);
00071 
00076 typedef void (*UA_NodeStore_nodeVisitor)(const UA_Node *node);
00077 
00079 void UA_NodeStore_iterate(const UA_NodeStore *ns, UA_NodeStore_nodeVisitor visitor);
00080 
00083 #endif /* UA_NODESTORE_H_ */