open62541 1.3.15
Open source implementation of OPC UA
Loading...
Searching...
No Matches
Data Structures | Macros | Typedefs | Enumerations | Functions | Variables
ua_server_internal.h File Reference
#include <open62541/server.h>
#include <open62541/plugin/nodestore.h>
#include "ua_connection_internal.h"
#include "ua_session.h"
#include "ua_server_async.h"
#include "ua_timer.h"
#include "ua_util_internal.h"
#include "ziptree.h"
#include "ua_pubsub_manager.h"
#include "ua_discovery_manager.h"
#include "ua_subscription.h"

Go to the source code of this file.

Data Structures

struct  UA_LocalMonitoredItem
 
struct  channel_entry
 
struct  session_list_entry
 
struct  UA_Server
 
struct  RefEntry
 
struct  RefTree
 
struct  BrowseOpts
 

Macros

#define UA_REFTREE_INITIAL_SIZE   16
 
#define UA_NODESTORE_NEW(server, nodeClass)    server->config.nodestore.newNode(server->config.nodestore.context, nodeClass)
 
#define UA_NODESTORE_DELETE(server, node)    server->config.nodestore.deleteNode(server->config.nodestore.context, node)
 
#define UA_NODESTORE_GET(server, nodeid)    server->config.nodestore.getNode(server->config.nodestore.context, nodeid)
 
#define UA_NODESTORE_RELEASE(server, node)    server->config.nodestore.releaseNode(server->config.nodestore.context, node)
 
#define UA_NODESTORE_GETCOPY(server, nodeid, outnode)
 
#define UA_NODESTORE_INSERT(server, node, addedNodeId)
 
#define UA_NODESTORE_REPLACE(server, node)    server->config.nodestore.replaceNode(server->config.nodestore.context, node)
 
#define UA_NODESTORE_REMOVE(server, nodeId)    server->config.nodestore.removeNode(server->config.nodestore.context, nodeId)
 
#define UA_NODESTORE_GETREFERENCETYPEID(server, index)
 

Typedefs

typedef struct channel_entry channel_entry
 
typedef struct session_list_entry session_list_entry
 
typedef UA_StatusCode(* UA_EditNodeCallback) (UA_Server *, UA_Session *, UA_Node *node, void *)
 
typedef void(* UA_ServiceOperation) (UA_Server *server, UA_Session *session, const void *context, const void *requestOperation, void *responseOperation)
 
typedef struct RefEntry RefEntry
 
typedef struct RefHead RefHead
 

Enumerations

enum  UA_DiagnosticEvent
 
enum  UA_ServerLifecycle
 

Functions

const UA_ReferenceTargetUA_NodeReferenceKind_findTarget (const UA_NodeReferenceKind *rk, const UA_ExpandedNodeId *targetId)
 
void UA_Server_deleteSecureChannels (UA_Server *server)
 
void UA_Server_cleanupTimedOutSecureChannels (UA_Server *server, UA_DateTime nowMonotonic)
 
UA_StatusCode UA_Server_createSecureChannel (UA_Server *server, UA_Connection *connection)
 
UA_StatusCode UA_Server_configSecureChannel (void *application, UA_SecureChannel *channel, const UA_AsymmetricAlgorithmSecurityHeader *asymHeader)
 
UA_StatusCode sendServiceFault (UA_SecureChannel *channel, UA_UInt32 requestId, UA_UInt32 requestHandle, UA_StatusCode statusCode)
 
void UA_Server_closeSecureChannel (UA_Server *server, UA_SecureChannel *channel, UA_DiagnosticEvent event)
 
UA_SecurityPolicygetSecurityPolicyByUri (const UA_Server *server, const UA_ByteString *securityPolicyUri)
 
UA_StatusCode getNamespaceByName (UA_Server *server, const UA_String namespaceUri, size_t *foundIndex)
 
UA_StatusCode getNamespaceByIndex (UA_Server *server, const size_t namespaceIndex, UA_String *foundUri)
 
UA_StatusCode getBoundSession (UA_Server *server, const UA_SecureChannel *channel, const UA_NodeId *token, UA_Session **session)
 
UA_StatusCode UA_Server_createSession (UA_Server *server, UA_SecureChannel *channel, const UA_CreateSessionRequest *request, UA_Session **session)
 
void UA_Server_removeSession (UA_Server *server, session_list_entry *sentry, UA_DiagnosticEvent event)
 
UA_StatusCode UA_Server_removeSessionByToken (UA_Server *server, const UA_NodeId *token, UA_DiagnosticEvent event)
 
void UA_Server_cleanupSessions (UA_Server *server, UA_DateTime nowMonotonic)
 
UA_SessiongetSessionByToken (UA_Server *server, const UA_NodeId *token)
 
UA_SessionUA_Server_getSessionById (UA_Server *server, const UA_NodeId *sessionId)
 
UA_StatusCode UA_Server_editNode (UA_Server *server, UA_Session *session, const UA_NodeId *nodeId, UA_EditNodeCallback callback, void *data)
 
void setupNs1Uri (UA_Server *server)
 
UA_UInt16 addNamespace (UA_Server *server, const UA_String name)
 
UA_Boolean UA_Node_hasSubTypeOrInstances (const UA_NodeHead *head)
 
UA_Boolean isNodeInTree (UA_Server *server, const UA_NodeId *leafNode, const UA_NodeId *nodeToFind, const UA_ReferenceTypeSet *relevantRefs)
 
UA_Boolean isNodeInTree_singleRef (UA_Server *server, const UA_NodeId *leafNode, const UA_NodeId *nodeToFind, const UA_Byte relevantRefTypeIndex)
 
UA_StatusCode browseRecursive (UA_Server *server, size_t startNodesSize, const UA_NodeId *startNodes, UA_BrowseDirection browseDirection, const UA_ReferenceTypeSet *refTypes, UA_UInt32 nodeClassMask, UA_Boolean includeStartNodes, size_t *resultsSize, UA_ExpandedNodeId **results)
 
UA_StatusCode referenceTypeIndices (UA_Server *server, const UA_NodeId *refType, UA_ReferenceTypeSet *indices, UA_Boolean includeSubtypes)
 
UA_StatusCode getParentTypeAndInterfaceHierarchy (UA_Server *server, const UA_NodeId *typeNode, UA_NodeId **typeHierarchy, size_t *typeHierarchySize)
 
UA_StatusCode getAllInterfaceChildNodeIds (UA_Server *server, const UA_NodeId *objectNode, const UA_NodeId *objectTypeNode, UA_NodeId **interfaceChildNodes, size_t *interfaceChildNodesSize)
 
const UA_NodegetNodeType (UA_Server *server, const UA_NodeHead *nodeHead)
 
UA_StatusCode sendResponse (UA_Server *server, UA_Session *session, UA_SecureChannel *channel, UA_UInt32 requestId, UA_Response *response, const UA_DataType *responseType)
 
UA_StatusCode UA_Server_processServiceOperations (UA_Server *server, UA_Session *session, UA_ServiceOperation operationCallback, const void *context, const size_t *requestOperations, const UA_DataType *requestOperationsType, size_t *responseOperations, const UA_DataType *responseOperationsType)
 
UA_StatusCode deleteNode (UA_Server *server, const UA_NodeId nodeId, UA_Boolean deleteReferences)
 
UA_StatusCode 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, void *nodeContext, UA_NodeId *outNewNodeId)
 
UA_StatusCode addRef (UA_Server *server, UA_Session *session, const UA_NodeId *sourceId, const UA_NodeId *referenceTypeId, const UA_NodeId *targetId, UA_Boolean forward)
 
UA_StatusCode setVariableNode_dataSource (UA_Server *server, const UA_NodeId nodeId, const UA_DataSource dataSource)
 
UA_StatusCode writeAttribute (UA_Server *server, UA_Session *session, const UA_NodeId *nodeId, const UA_AttributeId attributeId, const void *attr, const UA_DataType *attr_type)
 
UA_DataValue readAttribute (UA_Server *server, const UA_ReadValueId *item, UA_TimestampsToReturn timestamps)
 
UA_StatusCode readWithReadValue (UA_Server *server, const UA_NodeId *nodeId, const UA_AttributeId attributeId, void *v)
 
UA_StatusCode readObjectProperty (UA_Server *server, const UA_NodeId objectId, const UA_QualifiedName propertyName, UA_Variant *value)
 
UA_BrowsePathResult translateBrowsePathToNodeIds (UA_Server *server, const UA_BrowsePath *browsePath)
 
void monitoredItem_sampleCallback (UA_Server *server, UA_MonitoredItem *monitoredItem)
 
UA_SubscriptionUA_Server_getSubscriptionById (UA_Server *server, UA_UInt32 subscriptionId)
 
UA_StatusCode triggerEvent (UA_Server *server, const UA_NodeId eventNodeId, const UA_NodeId origin, UA_ByteString *outEventId, const UA_Boolean deleteEventNode)
 
UA_StatusCode filterEvent (UA_Server *server, UA_Session *session, const UA_NodeId *eventNode, UA_EventFilter *filter, UA_EventFieldList *efl, UA_EventFilterResult *result)
 
UA_BrowsePathResult browseSimplifiedBrowsePath (UA_Server *server, const UA_NodeId origin, size_t browsePathSize, const UA_QualifiedName *browsePath)
 
UA_StatusCode writeObjectProperty (UA_Server *server, const UA_NodeId objectId, const UA_QualifiedName propertyName, const UA_Variant value)
 
UA_StatusCode getNodeContext (UA_Server *server, UA_NodeId nodeId, void **nodeContext)
 
UA_StatusCode setNodeContext (UA_Server *server, UA_NodeId nodeId, void *nodeContext)
 
void removeCallback (UA_Server *server, UA_UInt64 callbackId)
 
UA_StatusCode changeRepeatedCallbackInterval (UA_Server *server, UA_UInt64 callbackId, UA_Double interval_ms)
 
UA_StatusCode addRepeatedCallback (UA_Server *server, UA_ServerCallback callback, void *data, UA_Double interval_ms, UA_UInt64 *callbackId)
 
UA_StatusCode register_server_with_discovery_server (UA_Server *server, void *client, const UA_Boolean isUnregister, const char *semaphoreFilePath)
 
 ZIP_HEAD (RefHead, RefEntry)
 
UA_StatusCode RefTree_init (RefTree *rt)
 
void RefTree_clear (RefTree *rt)
 
UA_StatusCode RefTree_addNodeId (RefTree *rt, const UA_NodeId *target, UA_Boolean *duplicate)
 
UA_Boolean RefTree_contains (RefTree *rt, const UA_ExpandedNodeId *target)
 
UA_Boolean RefTree_containsNodeId (RefTree *rt, const UA_NodeId *target)
 
void ReadWithNode (const UA_Node *node, UA_Server *server, UA_Session *session, UA_TimestampsToReturn timestampsToReturn, const UA_ReadValueId *id, UA_DataValue *v)
 
UA_StatusCode readValueAttribute (UA_Server *server, UA_Session *session, const UA_VariableNode *vn, UA_DataValue *v)
 
UA_Boolean compatibleValue (UA_Server *server, UA_Session *session, const UA_NodeId *targetDataTypeId, UA_Int32 targetValueRank, size_t targetArrayDimensionsSize, const UA_UInt32 *targetArrayDimensions, const UA_Variant *value, const UA_NumericRange *range, const char **reason)
 
UA_Boolean compatibleDataTypes (UA_Server *server, const UA_NodeId *dataType, const UA_NodeId *constraintDataType)
 
void adjustValueType (UA_Server *server, UA_Variant *value, const UA_NodeId *targetDataTypeId)
 
UA_Boolean compatibleValueDataType (UA_Server *server, const UA_DataType *dataType, const UA_NodeId *constraintDataType)
 
UA_Boolean compatibleArrayDimensions (size_t constraintArrayDimensionsSize, const UA_UInt32 *constraintArrayDimensions, size_t testArrayDimensionsSize, const UA_UInt32 *testArrayDimensions)
 
UA_Boolean compatibleValueArrayDimensions (const UA_Variant *value, size_t targetArrayDimensionsSize, const UA_UInt32 *targetArrayDimensions)
 
UA_Boolean compatibleValueRankArrayDimensions (UA_Server *server, UA_Session *session, UA_Int32 valueRank, size_t arrayDimensionsSize)
 
UA_Boolean compatibleValueRanks (UA_Int32 valueRank, UA_Int32 constraintValueRank)
 
void Operation_Browse (UA_Server *server, UA_Session *session, const UA_UInt32 *maxrefs, const UA_BrowseDescription *descr, UA_BrowseResult *result)
 
UA_DataValue UA_Server_readWithSession (UA_Server *server, UA_Session *session, const UA_ReadValueId *item, UA_TimestampsToReturn timestampsToReturn)
 
UA_StatusCode AddNode_raw (UA_Server *server, UA_Session *session, void *nodeContext, const UA_AddNodesItem *item, UA_NodeId *outNewNodeId)
 
UA_StatusCode AddNode_addRefs (UA_Server *server, UA_Session *session, const UA_NodeId *nodeId, const UA_NodeId *parentNodeId, const UA_NodeId *referenceTypeId, const UA_NodeId *typeDefinitionId)
 
UA_StatusCode AddNode_finish (UA_Server *server, UA_Session *session, const UA_NodeId *nodeId)
 
UA_StatusCode UA_Server_initNS0 (UA_Server *server)
 
UA_StatusCode writeNs0VariableArray (UA_Server *server, UA_UInt32 id, void *v, size_t length, const UA_DataType *type)
 
const UA_NodeUA_NODESTORE_GETFROMREF (UA_Server *server, UA_NodePointer target)
 

Variables

const struct aa_head refNameTree
 

Macro Definition Documentation

◆ UA_REFTREE_INITIAL_SIZE

#define UA_REFTREE_INITIAL_SIZE   16

RefTree.

A RefTree is a sorted set of NodeIds that ensures we consider each node just once. It holds a single array for both the ExpandedNodeIds and the entries of a tree-structure for fast lookup. A single realloc operation (with some pointer repairing) can be used to increase the capacity of the RefTree.

When the RefTree is complete, the tree-part at the end of the targets array can be ignored / cut away to use it as a simple ExpandedNodeId array.

The layout of the targets array is as follows:

| Targets [ExpandedNodeId, n times] | Tree [RefEntry, n times] |

Definition at line 468 of file ua_server_internal.h.

◆ UA_NODESTORE_NEW

#define UA_NODESTORE_NEW (   server,
  nodeClass 
)     server->config.nodestore.newNode(server->config.nodestore.context, nodeClass)

Nodestore Access Macros.

Definition at line 644 of file ua_server_internal.h.

◆ UA_NODESTORE_DELETE

#define UA_NODESTORE_DELETE (   server,
  node 
)     server->config.nodestore.deleteNode(server->config.nodestore.context, node)

Definition at line 647 of file ua_server_internal.h.

◆ UA_NODESTORE_GET

#define UA_NODESTORE_GET (   server,
  nodeid 
)     server->config.nodestore.getNode(server->config.nodestore.context, nodeid)

Definition at line 650 of file ua_server_internal.h.

◆ UA_NODESTORE_RELEASE

#define UA_NODESTORE_RELEASE (   server,
  node 
)     server->config.nodestore.releaseNode(server->config.nodestore.context, node)

Definition at line 657 of file ua_server_internal.h.

◆ UA_NODESTORE_GETCOPY

#define UA_NODESTORE_GETCOPY (   server,
  nodeid,
  outnode 
)
Value:
server->config.nodestore.getNodeCopy(server->config.nodestore.context, \
nodeid, outnode)

Definition at line 660 of file ua_server_internal.h.

◆ UA_NODESTORE_INSERT

#define UA_NODESTORE_INSERT (   server,
  node,
  addedNodeId 
)
Value:
server->config.nodestore.insertNode(server->config.nodestore.context, \
node, addedNodeId)

Definition at line 664 of file ua_server_internal.h.

◆ UA_NODESTORE_REPLACE

#define UA_NODESTORE_REPLACE (   server,
  node 
)     server->config.nodestore.replaceNode(server->config.nodestore.context, node)

Definition at line 668 of file ua_server_internal.h.

◆ UA_NODESTORE_REMOVE

#define UA_NODESTORE_REMOVE (   server,
  nodeId 
)     server->config.nodestore.removeNode(server->config.nodestore.context, nodeId)

Definition at line 671 of file ua_server_internal.h.

◆ UA_NODESTORE_GETREFERENCETYPEID

#define UA_NODESTORE_GETREFERENCETYPEID (   server,
  index 
)
Value:
server->config.nodestore.getReferenceTypeId(server->config.nodestore.context, \
index)

Definition at line 674 of file ua_server_internal.h.

Typedef Documentation

◆ channel_entry

typedef struct channel_entry channel_entry

◆ session_list_entry

◆ UA_EditNodeCallback

typedef UA_StatusCode(* UA_EditNodeCallback) (UA_Server *, UA_Session *, UA_Node *node, void *)

Node Handling.

Calls the callback with the node retrieved from the nodestore on top of the stack. Either a copy or the original node for in-situ editing. Depends on multithreading and the nodestore.

Definition at line 251 of file ua_server_internal.h.

◆ UA_ServiceOperation

typedef void(* UA_ServiceOperation) (UA_Server *server, UA_Session *session, const void *context, const void *requestOperation, void *responseOperation)

Many services come as an array of operations.

This function generalizes the processing of the operations.

Definition at line 331 of file ua_server_internal.h.

◆ RefEntry

typedef struct RefEntry RefEntry

◆ RefHead

typedef struct RefHead RefHead

Definition at line 477 of file ua_server_internal.h.

Enumeration Type Documentation

◆ UA_DiagnosticEvent

Enumerator
UA_DIAGNOSTICEVENT_CLOSE 
UA_DIAGNOSTICEVENT_REJECT 
UA_DIAGNOSTICEVENT_SECURITYREJECT 
UA_DIAGNOSTICEVENT_TIMEOUT 
UA_DIAGNOSTICEVENT_ABORT 
UA_DIAGNOSTICEVENT_PURGE 

Definition at line 59 of file ua_server_internal.h.

◆ UA_ServerLifecycle

Enumerator
UA_SERVERLIFECYCLE_FRESH 
UA_SERVERLIFECYLE_RUNNING 

Definition at line 80 of file ua_server_internal.h.

Function Documentation

◆ UA_NodeReferenceKind_findTarget()

const UA_ReferenceTarget * UA_NodeReferenceKind_findTarget ( const UA_NodeReferenceKind rk,
const UA_ExpandedNodeId targetId 
)

◆ UA_Server_deleteSecureChannels()

void UA_Server_deleteSecureChannels ( UA_Server server)

SecureChannel Handling.

Remove all securechannels

◆ UA_Server_cleanupTimedOutSecureChannels()

void UA_Server_cleanupTimedOutSecureChannels ( UA_Server server,
UA_DateTime  nowMonotonic 
)

Remove timed out securechannels with a delayed callback.

So all currently scheduled jobs with a pointer to a securechannel can finish first.

◆ UA_Server_createSecureChannel()

UA_StatusCode UA_Server_createSecureChannel ( UA_Server server,
UA_Connection connection 
)

◆ UA_Server_configSecureChannel()

UA_StatusCode UA_Server_configSecureChannel ( void *  application,
UA_SecureChannel channel,
const UA_AsymmetricAlgorithmSecurityHeader asymHeader 
)

◆ sendServiceFault()

UA_StatusCode sendServiceFault ( UA_SecureChannel channel,
UA_UInt32  requestId,
UA_UInt32  requestHandle,
UA_StatusCode  statusCode 
)

◆ UA_Server_closeSecureChannel()

void UA_Server_closeSecureChannel ( UA_Server server,
UA_SecureChannel channel,
UA_DiagnosticEvent  event 
)

◆ getSecurityPolicyByUri()

UA_SecurityPolicy * getSecurityPolicyByUri ( const UA_Server server,
const UA_ByteString securityPolicyUri 
)

Gets the a pointer to the context of a security policy supported by the server matched by the security policy uri.

◆ getNamespaceByName()

UA_StatusCode getNamespaceByName ( UA_Server server,
const UA_String  namespaceUri,
size_t *  foundIndex 
)

Session Handling.

◆ getNamespaceByIndex()

UA_StatusCode getNamespaceByIndex ( UA_Server server,
const size_t  namespaceIndex,
UA_String foundUri 
)

◆ getBoundSession()

UA_StatusCode getBoundSession ( UA_Server server,
const UA_SecureChannel channel,
const UA_NodeId token,
UA_Session **  session 
)

◆ UA_Server_createSession()

UA_StatusCode UA_Server_createSession ( UA_Server server,
UA_SecureChannel channel,
const UA_CreateSessionRequest request,
UA_Session **  session 
)

◆ UA_Server_removeSession()

void UA_Server_removeSession ( UA_Server server,
session_list_entry sentry,
UA_DiagnosticEvent  event 
)

◆ UA_Server_removeSessionByToken()

UA_StatusCode UA_Server_removeSessionByToken ( UA_Server server,
const UA_NodeId token,
UA_DiagnosticEvent  event 
)

◆ UA_Server_cleanupSessions()

void UA_Server_cleanupSessions ( UA_Server server,
UA_DateTime  nowMonotonic 
)

◆ getSessionByToken()

UA_Session * getSessionByToken ( UA_Server server,
const UA_NodeId token 
)

◆ UA_Server_getSessionById()

UA_Session * UA_Server_getSessionById ( UA_Server server,
const UA_NodeId sessionId 
)

◆ UA_Server_editNode()

UA_StatusCode UA_Server_editNode ( UA_Server server,
UA_Session session,
const UA_NodeId nodeId,
UA_EditNodeCallback  callback,
void *  data 
)

◆ setupNs1Uri()

void setupNs1Uri ( UA_Server server)

Utility Functions.

◆ addNamespace()

UA_UInt16 addNamespace ( UA_Server server,
const UA_String  name 
)

◆ UA_Node_hasSubTypeOrInstances()

UA_Boolean UA_Node_hasSubTypeOrInstances ( const UA_NodeHead head)

◆ isNodeInTree()

UA_Boolean isNodeInTree ( UA_Server server,
const UA_NodeId leafNode,
const UA_NodeId nodeToFind,
const UA_ReferenceTypeSet relevantRefs 
)

Recursively searches "upwards" in the tree following specific reference types.

◆ isNodeInTree_singleRef()

UA_Boolean isNodeInTree_singleRef ( UA_Server server,
const UA_NodeId leafNode,
const UA_NodeId nodeToFind,
const UA_Byte  relevantRefTypeIndex 
)

Convenience function with just a single ReferenceTypeIndex.

◆ browseRecursive()

UA_StatusCode browseRecursive ( UA_Server server,
size_t  startNodesSize,
const UA_NodeId startNodes,
UA_BrowseDirection  browseDirection,
const UA_ReferenceTypeSet refTypes,
UA_UInt32  nodeClassMask,
UA_Boolean  includeStartNodes,
size_t *  resultsSize,
UA_ExpandedNodeId **  results 
)

Returns an array with the hierarchy of nodes.

The start nodes can be returned as well. The returned array starts at the leaf and continues "upwards" or "downwards". Duplicate entries are removed.

◆ referenceTypeIndices()

UA_StatusCode referenceTypeIndices ( UA_Server server,
const UA_NodeId refType,
UA_ReferenceTypeSet indices,
UA_Boolean  includeSubtypes 
)

Get the bitfield indices of a ReferenceType and possibly its subtypes.

refType must point to a ReferenceTypeNode.

◆ getParentTypeAndInterfaceHierarchy()

UA_StatusCode getParentTypeAndInterfaceHierarchy ( UA_Server server,
const UA_NodeId typeNode,
UA_NodeId **  typeHierarchy,
size_t *  typeHierarchySize 
)

Returns the recursive type and interface hierarchy of the node.

◆ getAllInterfaceChildNodeIds()

UA_StatusCode getAllInterfaceChildNodeIds ( UA_Server server,
const UA_NodeId objectNode,
const UA_NodeId objectTypeNode,
UA_NodeId **  interfaceChildNodes,
size_t *  interfaceChildNodesSize 
)

Returns the recursive interface hierarchy of the node.

◆ getNodeType()

const UA_Node * getNodeType ( UA_Server server,
const UA_NodeHead nodeHead 
)

Returns the type node from the node on the stack top.

The type node is pushed on the stack and returned.

◆ sendResponse()

UA_StatusCode sendResponse ( UA_Server server,
UA_Session session,
UA_SecureChannel channel,
UA_UInt32  requestId,
UA_Response response,
const UA_DataType responseType 
)

◆ UA_Server_processServiceOperations()

UA_StatusCode UA_Server_processServiceOperations ( UA_Server server,
UA_Session session,
UA_ServiceOperation  operationCallback,
const void *  context,
const size_t *  requestOperations,
const UA_DataType requestOperationsType,
size_t *  responseOperations,
const UA_DataType responseOperationsType 
)

◆ deleteNode()

UA_StatusCode deleteNode ( UA_Server server,
const UA_NodeId  nodeId,
UA_Boolean  deleteReferences 
)

Internal function calls, without locks.

◆ addNode()

UA_StatusCode 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,
void *  nodeContext,
UA_NodeId outNewNodeId 
)

◆ addRef()

UA_StatusCode addRef ( UA_Server server,
UA_Session session,
const UA_NodeId sourceId,
const UA_NodeId referenceTypeId,
const UA_NodeId targetId,
UA_Boolean  forward 
)

◆ setVariableNode_dataSource()

UA_StatusCode setVariableNode_dataSource ( UA_Server server,
const UA_NodeId  nodeId,
const UA_DataSource  dataSource 
)

◆ writeAttribute()

UA_StatusCode writeAttribute ( UA_Server server,
UA_Session session,
const UA_NodeId nodeId,
const UA_AttributeId  attributeId,
const void *  attr,
const UA_DataType attr_type 
)

◆ readAttribute()

UA_DataValue readAttribute ( UA_Server server,
const UA_ReadValueId item,
UA_TimestampsToReturn  timestamps 
)

◆ readWithReadValue()

UA_StatusCode readWithReadValue ( UA_Server server,
const UA_NodeId nodeId,
const UA_AttributeId  attributeId,
void *  v 
)

◆ readObjectProperty()

UA_StatusCode readObjectProperty ( UA_Server server,
const UA_NodeId  objectId,
const UA_QualifiedName  propertyName,
UA_Variant value 
)

◆ translateBrowsePathToNodeIds()

UA_BrowsePathResult translateBrowsePathToNodeIds ( UA_Server server,
const UA_BrowsePath browsePath 
)

◆ monitoredItem_sampleCallback()

void monitoredItem_sampleCallback ( UA_Server server,
UA_MonitoredItem monitoredItem 
)

◆ UA_Server_getSubscriptionById()

UA_Subscription * UA_Server_getSubscriptionById ( UA_Server server,
UA_UInt32  subscriptionId 
)

◆ triggerEvent()

UA_StatusCode triggerEvent ( UA_Server server,
const UA_NodeId  eventNodeId,
const UA_NodeId  origin,
UA_ByteString outEventId,
const UA_Boolean  deleteEventNode 
)

◆ filterEvent()

UA_StatusCode filterEvent ( UA_Server server,
UA_Session session,
const UA_NodeId eventNode,
UA_EventFilter filter,
UA_EventFieldList efl,
UA_EventFilterResult result 
)

Filters the given event with the given filter and writes the results into a notification.

◆ browseSimplifiedBrowsePath()

UA_BrowsePathResult browseSimplifiedBrowsePath ( UA_Server server,
const UA_NodeId  origin,
size_t  browsePathSize,
const UA_QualifiedName browsePath 
)

◆ writeObjectProperty()

UA_StatusCode writeObjectProperty ( UA_Server server,
const UA_NodeId  objectId,
const UA_QualifiedName  propertyName,
const UA_Variant  value 
)

◆ getNodeContext()

UA_StatusCode getNodeContext ( UA_Server server,
UA_NodeId  nodeId,
void **  nodeContext 
)

◆ setNodeContext()

UA_StatusCode setNodeContext ( UA_Server server,
UA_NodeId  nodeId,
void *  nodeContext 
)

◆ removeCallback()

void removeCallback ( UA_Server server,
UA_UInt64  callbackId 
)

◆ changeRepeatedCallbackInterval()

UA_StatusCode changeRepeatedCallbackInterval ( UA_Server server,
UA_UInt64  callbackId,
UA_Double  interval_ms 
)

◆ addRepeatedCallback()

UA_StatusCode addRepeatedCallback ( UA_Server server,
UA_ServerCallback  callback,
void *  data,
UA_Double  interval_ms,
UA_UInt64 callbackId 
)

◆ register_server_with_discovery_server()

UA_StatusCode register_server_with_discovery_server ( UA_Server server,
void *  client,
const UA_Boolean  isUnregister,
const char *  semaphoreFilePath 
)

◆ ZIP_HEAD()

ZIP_HEAD ( RefHead  ,
RefEntry   
)

◆ RefTree_init()

UA_StatusCode RefTree_init ( RefTree rt)

◆ RefTree_clear()

void RefTree_clear ( RefTree rt)

◆ RefTree_addNodeId()

UA_StatusCode RefTree_addNodeId ( RefTree rt,
const UA_NodeId target,
UA_Boolean duplicate 
)

◆ RefTree_contains()

UA_Boolean RefTree_contains ( RefTree rt,
const UA_ExpandedNodeId target 
)

◆ RefTree_containsNodeId()

UA_Boolean RefTree_containsNodeId ( RefTree rt,
const UA_NodeId target 
)

◆ ReadWithNode()

void ReadWithNode ( const UA_Node node,
UA_Server server,
UA_Session session,
UA_TimestampsToReturn  timestampsToReturn,
const UA_ReadValueId id,
UA_DataValue v 
)

Check Information Model Consistency.

Read a node attribute in the context of a "checked-out" node. So the attribute will not be copied when possible. The variant then points into the node and has UA_VARIANT_DATA_NODELETE set.

◆ readValueAttribute()

UA_StatusCode readValueAttribute ( UA_Server server,
UA_Session session,
const UA_VariableNode vn,
UA_DataValue v 
)

◆ compatibleValue()

UA_Boolean compatibleValue ( UA_Server server,
UA_Session session,
const UA_NodeId targetDataTypeId,
UA_Int32  targetValueRank,
size_t  targetArrayDimensionsSize,
const UA_UInt32 targetArrayDimensions,
const UA_Variant value,
const UA_NumericRange range,
const char **  reason 
)

Test whether the value matches a variable definition given by.

  • datatype
  • valueranke
  • array dimensions. Sometimes it can be necessary to transform the content of the value, e.g. byte array to bytestring or uint32 to some enum. If editableValue is non-NULL, we try to create a matching variant that points to the original data.

The reason is set whenever the return value is false

◆ compatibleDataTypes()

UA_Boolean compatibleDataTypes ( UA_Server server,
const UA_NodeId dataType,
const UA_NodeId constraintDataType 
)

Is the DataType compatible.

◆ adjustValueType()

void adjustValueType ( UA_Server server,
UA_Variant value,
const UA_NodeId targetDataTypeId 
)

Set to the target type if compatible.

◆ compatibleValueDataType()

UA_Boolean compatibleValueDataType ( UA_Server server,
const UA_DataType dataType,
const UA_NodeId constraintDataType 
)

Is the Value compatible with the DataType? Can perform additional checks compared to compatibleDataTypes.

◆ compatibleArrayDimensions()

UA_Boolean compatibleArrayDimensions ( size_t  constraintArrayDimensionsSize,
const UA_UInt32 constraintArrayDimensions,
size_t  testArrayDimensionsSize,
const UA_UInt32 testArrayDimensions 
)

◆ compatibleValueArrayDimensions()

UA_Boolean compatibleValueArrayDimensions ( const UA_Variant value,
size_t  targetArrayDimensionsSize,
const UA_UInt32 targetArrayDimensions 
)

◆ compatibleValueRankArrayDimensions()

UA_Boolean compatibleValueRankArrayDimensions ( UA_Server server,
UA_Session session,
UA_Int32  valueRank,
size_t  arrayDimensionsSize 
)

◆ compatibleValueRanks()

UA_Boolean compatibleValueRanks ( UA_Int32  valueRank,
UA_Int32  constraintValueRank 
)

◆ Operation_Browse()

void Operation_Browse ( UA_Server server,
UA_Session session,
const UA_UInt32 maxrefs,
const UA_BrowseDescription descr,
UA_BrowseResult result 
)

◆ UA_Server_readWithSession()

UA_DataValue UA_Server_readWithSession ( UA_Server server,
UA_Session session,
const UA_ReadValueId item,
UA_TimestampsToReturn  timestampsToReturn 
)

◆ AddNode_raw()

UA_StatusCode AddNode_raw ( UA_Server server,
UA_Session session,
void *  nodeContext,
const UA_AddNodesItem item,
UA_NodeId outNewNodeId 
)

AddNodes Begin and Finish.

Creates a new node in the nodestore.

◆ AddNode_addRefs()

UA_StatusCode AddNode_addRefs ( UA_Server server,
UA_Session session,
const UA_NodeId nodeId,
const UA_NodeId parentNodeId,
const UA_NodeId referenceTypeId,
const UA_NodeId typeDefinitionId 
)

Check the reference to the parent node; Add references.

◆ AddNode_finish()

UA_StatusCode AddNode_finish ( UA_Server server,
UA_Session session,
const UA_NodeId nodeId 
)

Type-check type-definition; Run the constructors.

◆ UA_Server_initNS0()

UA_StatusCode UA_Server_initNS0 ( UA_Server server)

Create Namespace 0.

◆ writeNs0VariableArray()

UA_StatusCode writeNs0VariableArray ( UA_Server server,
UA_UInt32  id,
void *  v,
size_t  length,
const UA_DataType type 
)

◆ UA_NODESTORE_GETFROMREF()

const UA_Node * UA_NODESTORE_GETFROMREF ( UA_Server server,
UA_NodePointer  target 
)

Returns NULL if the target is an external Reference (per the ExpandedNodeId)

Variable Documentation

◆ refNameTree

const struct aa_head refNameTree
extern

References Handling.