NodeManager Class Reference
[Core Module Interfaces]

#include <nodemanager.h>

Inheritance diagram for NodeManager:

List of all members.

Public Member Functions

 NodeManager ()
virtual ~NodeManager ()
virtual UaStatus startUp (ServerManager *pServerManager)=0
virtual UaStatus shutDown ()=0
virtual UaStatus sessionOpened (Session *)
virtual UaStatus sessionActivated (Session *)
virtual UaStatus sessionClosed (Session *)
virtual UaStatus browse (const ServiceContext &serviceContext, BrowseContext &browseContext, UaReferenceDescriptions &References)=0
virtual UaStatus translateBrowsePathToNodeId (const ServiceContext &serviceContext, const UaNodeId &startingNode, UaRelativePath &relativePath, UaBrowsePathTargets &browsePathTargets)=0
virtual VariableHandlegetVariableHandle (Session *pSession, VariableHandle::ServiceType serviceType, OpcUa_NodeId *pNodeId, OpcUa_Int32 AttributeId) const =0
virtual HistoryVariableHandlegetHistoryVariableHandle (Session *pSession, HistoryVariableHandle::ServiceType serviceType, OpcUa_NodeId *pNodeId, UaStatus &result) const
virtual UaStatus getEventManagers (Session *pSession, OpcUa_NodeId *pNodeId, OpcUa_EventFilter *eventFilter, EventManagerArray &eventManagers) const
virtual MethodHandlegetMethodHandle (Session *pSession, OpcUa_NodeId *pObjectNodeId, OpcUa_NodeId *pMethodNodeId, UaStatus &result) const
virtual UaStatus addNode (const ServiceContext &serviceContext, const UaNodeId &parentNodeId, const UaNodeId &referenceTypeId, const UaNodeId &requestedNewNodeId, const UaQualifiedName &browseName, OpcUa_NodeClass nodeClass, const UaExtensionObject &nodeAttributes, const UaNodeId &typeDefinition, UaNodeId &addedNodeId)
virtual UaStatus addReference (const ServiceContext &serviceContext, const UaNodeId &sourceNodeId, const UaNodeId &referenceTypeId, OpcUa_Boolean isForward, const UaNodeId &targetNodeId, OpcUa_NodeClass targetNodeClass)
virtual UaStatus deleteNode (const ServiceContext &serviceContext, const UaNodeId &nodeId, OpcUa_Boolean deleteTargetReference)
virtual UaStatus deleteReference (const ServiceContext &serviceContext, const UaNodeId &sourceNodeId, const UaNodeId &referenceTypeId, OpcUa_Boolean isForward, const UaNodeId &targetNodeId, OpcUa_Boolean deleteBidirectional)
virtual
NodeManagerCrossReferences
getNodeManagerCrossReferences ()
virtual NodeManagerConfiggetNodeManagerConfig ()
virtual NodeManagerUaNodegetNodeManagerUaNode ()

Detailed Description

Interface definition of NodeManager used for browsing and managing the address space. The NodeManager interface provides the browsing capability for the nodes managed by the NodeManager instance. It returns also the responsible IOManager and MethodManager for a passed node. The interface provides optional methods to add nodes and references and to delete nodes and references. It is not possible to create plane copies of this Interface.


Constructor & Destructor Documentation

NodeManager::NodeManager (  )

construction

NodeManager::~NodeManager (  ) [virtual]

destruction


Member Function Documentation

UaStatus NodeManager::addNode ( const ServiceContext serviceContext,
const UaNodeId parentNodeId,
const UaNodeId referenceTypeId,
const UaNodeId requestedNewNodeId,
const UaQualifiedName browseName,
OpcUa_NodeClass  nodeClass,
const UaExtensionObject nodeAttributes,
const UaNodeId typeDefinition,
UaNodeId addedNodeId 
) [virtual]

Add node to the NodeManager.

Parameters:
serviceContextGeneral context for the service calls containing information like the session object, return diagnostic mask and timeout hint.
parentNodeIdThe NodeId of the parent node of the node to create.
referenceTypeIdType of the reference to create from the source node to the new node.
requestedNewNodeIdThe new NodeId of the requested node.
browseNameThe browse name of the node to create.
nodeClassThe node class of the node to create.
nodeAttributesAll other attribute values of the node to create.
typeDefinitionThe type definition of the node to create.
addedNodeIdThe NodeId of the newly created node.
Returns:
Error code

Reimplemented in NodeManagerRoot.

UaStatus NodeManager::addReference ( const ServiceContext serviceContext,
const UaNodeId sourceNodeId,
const UaNodeId referenceTypeId,
OpcUa_Boolean  isForward,
const UaNodeId targetNodeId,
OpcUa_NodeClass  targetNodeClass 
) [virtual]

Add reference to the NodeManager.

Parameters:
serviceContextGeneral context for the service calls containing information like the session object, return diagnostic mask and timeout hint.
sourceNodeIdThe NodeId of source node for the reference to create.
referenceTypeIdType of the reference to create from the source node to the target node.
isForwardIndicates if the reference is in forward direction from the source to the target node.
targetNodeIdThe NodeId of target node for the reference to create.
targetNodeClassThe NodeClass of the target Node.
Returns:
Error code

Reimplemented in NodeManagerRoot.

virtual UaStatus NodeManager::browse ( const ServiceContext serviceContext,
BrowseContext browseContext,
UaReferenceDescriptions &  References 
) [pure virtual]

Discover the references of a specified node of a view. This method is used to return a list of references and target nodes for the passed node to browse for the services Browse and BrowseNext.

Parameters:
serviceContextGeneral context for the service call containing information like the session object, return diagnostic mask and timeout hint.
browseContextBrowse context for the first browse or the following browse next calls with continuation point.
ReferencesArray of ReferenceDescription results for the browsed node.
Returns:
Error code

Implemented in NodeManagerRoot, and NodeManagerUaNode.

UaStatus NodeManager::deleteNode ( const ServiceContext serviceContext,
const UaNodeId nodeId,
OpcUa_Boolean  deleteTargetReference 
) [virtual]

Delete node from the NodeManager.

Parameters:
serviceContextGeneral context for the service calls containing information like the session object, return diagnostic mask and timeout hint.
nodeIdThe NodeId of the node to delete.
deleteTargetReferenceIndicates if the inverse references in the target nodes must be deleted
Returns:
Error code

Reimplemented in NodeManagerRoot.

UaStatus NodeManager::deleteReference ( const ServiceContext serviceContext,
const UaNodeId sourceNodeId,
const UaNodeId referenceTypeId,
OpcUa_Boolean  isForward,
const UaNodeId targetNodeId,
OpcUa_Boolean  deleteBidirectional 
) [virtual]

Delete reference from the NodeManager.

Parameters:
serviceContextGeneral context for the service calls containing information like the session object, return diagnostic mask and timeout hint.
sourceNodeIdThe NodeId of source node for the reference to delete.
referenceTypeIdType of the reference to delete from the source node to the target node.
isForwardIndicates if the reference is in forward direction from the source to the target node.
targetNodeIdThe NodeId of target node for the reference to delete.
deleteBidirectionalFlag indicating if the reference should be deleted in both directions.
Returns:
Error code

Reimplemented in NodeManagerRoot.

UaStatus NodeManager::getEventManagers ( Session pSession,
OpcUa_NodeId *  pNodeId,
OpcUa_EventFilter *  eventFilter,
EventManagerArray eventManagers 
) const [virtual]

Get a list of EventManager interfaces for an event notifier. This method is used to get a list of EventManager interfaces for the passed object node which must be an event notifier. Since the event notifier can be the root for an event hierarchy with different event sources and different EventManagers. The NodeManager can filter based on the passed event filter. But this can be done also later by the EventManager.

Parameters:
pSessionInterface to the Session context for the method call
pNodeIdNodeId of the requested node
eventFilterEvent filter defined by the client
eventManagersa list of EventManager interfaces for an event notifier.
Returns:
Error code

Reimplemented in NodeManagerBase, and NodeManagerRoot.

HistoryVariableHandle * NodeManager::getHistoryVariableHandle ( Session pSession,
HistoryVariableHandle::ServiceType  serviceType,
OpcUa_NodeId *  pNodeId,
UaStatus result 
) const [virtual]

Get the history variable handle for the passed node Id. This method is used to get the HistoryVariableHandle for a node used to access the related HistoryManager in the services ReadHistory and UpdateHistory.

Parameters:
pSessionInterface to the Session context for the method call
serviceTypeService type enumerator with the following possible settings READ_EVENTS, READ_RAW, READ_MODIFIED, READ_PROCESSED, READ_ATTIME, UPDATE_DATA, UPDATE_EVENT, DELETE_DATA, DELETE_EVENT
pNodeIdNodeId of the requested node
resultthe result of the current Operation.
Returns:
the history variable handle for the passed node Id.

Reimplemented in NodeManagerBase, and NodeManagerRoot.

MethodHandle * NodeManager::getMethodHandle ( Session pSession,
OpcUa_NodeId *  pObjectNodeId,
OpcUa_NodeId *  pMethodNodeId,
UaStatus result 
) const [virtual]

Get the method handle for the passed node Id. This method is used to get the MethodHandle for a Object node / Method combination used to access the related MethodManager in the service Call.

Parameters:
pSessionInterface to the Session context for the method call
pObjectNodeIdthe NodeId of the actual Object.
pMethodNodeIdthe NodeId of the actual Method.
resultthe result of the current Operation.
Returns:
Error code

Reimplemented in NodeManagerRoot, and NodeManagerUaNode.

NodeManagerConfig * NodeManager::getNodeManagerConfig (  ) [virtual]

Get the interface NodeManagerConfig if available.

Returns:
the NodeManagerConfig interface pointer.

Reimplemented in NodeManagerRoot, and NodeManagerUaNode.

NodeManagerCrossReferences * NodeManager::getNodeManagerCrossReferences (  ) [virtual]

Get the interface NodeManagerCrossReferences if available.

Returns:
the NodeManagerCrossReferences interface pointer.

Reimplemented in NodeManagerRoot, and NodeManagerUaNode.

NodeManagerUaNode * NodeManager::getNodeManagerUaNode (  ) [virtual]

Get the interface NodeManagerUaNode if available.

Returns:
the NodeManagerUaNode interface pointer.

Reimplemented in NodeManagerUaNode.

virtual VariableHandle* NodeManager::getVariableHandle ( Session pSession,
VariableHandle::ServiceType  serviceType,
OpcUa_NodeId *  pNodeId,
OpcUa_Int32  AttributeId 
) const [pure virtual]

Get the variable handle for the passed node Id. This method is used to get the VariableHandle for a node used to access the related IOManager in the services Read, Write and CreateMonitoredItems. The provided VariableHandle is reference counted. The reference count is 1 after initial creation of the object. The SDK will release its reference after the transaction is finished. If the VariableHandle is stored in an application specific object, the reference counter must be incremented to keep the one reference. If this stored pointer is used to return the VariableHandle in following getVariableHandle calls, the reference counter must be incrementd before returning the pointer.

Parameters:
pSessionInterface to the Session context for the method call
serviceTypeService type enumerator with the following possible settings READ - Read service WRITE - Write service MONITORING - CreateMonitoredItems service
pNodeIdNodeId of the requested node
AttributeIdAttributeId of the requested node
Returns:
The variable handle for the passed node Id and attribute Id combination.

Implemented in NodeManagerRoot, and NodeManagerUaNode.

virtual UaStatus NodeManager::sessionActivated ( Session  ) [inline, virtual]

Notifies the node manager that a session was activated. The method can be overwritten in a derived class if the implementation needs to know which sessions are active

Returns:
Error code

Reimplemented in NodeManagerRoot.

virtual UaStatus NodeManager::sessionClosed ( Session  ) [inline, virtual]

Notifies the node manager that a session was closed. The method can be overwritten in a derived class if the implementation needs to know which sessions are active

Returns:
Error code

Reimplemented in NodeManagerRoot.

virtual UaStatus NodeManager::sessionOpened ( Session  ) [inline, virtual]

Notifies the node manager that a new session was opened. This information can be used to establish a connection to an underlying system if Session specific (e.g. user specific) connections are necessary. The method can be overwritten in a derived class if the implementation needs to know which sessions are active

Returns:
Error code

Reimplemented in NodeManagerRoot.

virtual UaStatus NodeManager::shutDown (  ) [pure virtual]

Shut down NodeManager. Method is called during shut down of OPC Server and can be used to clean up the configuration of the NodeManager.

Returns:
Error code

Implemented in NodeManagerUaNode.

virtual UaStatus NodeManager::startUp ( ServerManager pServerManager ) [pure virtual]

Start up NodeManager. Method is called during start up of OPC Server and must load the initial NodeManager configuration.

Parameters:
pServerManagerInterface to the central ServerManager object. This interface pointer should be stored in the NodeManager instance to have access to core module objects like the root NodeManager or the ServerConfig
Returns:
Error code

Implemented in NodeManagerBase, NodeManagerNS1, NodeManagerRoot, and NodeManagerUaNode.

virtual UaStatus NodeManager::translateBrowsePathToNodeId ( const ServiceContext serviceContext,
const UaNodeId startingNode,
UaRelativePath relativePath,
UaBrowsePathTargets &  browsePathTargets 
) [pure virtual]

Translates a relative browse path to a node id. This method is used to request the Server to translate a browse paths to a NodeId for the target node. There could be a list of target nodes but the normal case is a single result for a starting node and a path. The browse path is constructed of a starting Node and a RelativePath. The specified starting Node identifies the Node from which the RelativePath is based. The RelativePath contains a sequence of BrowseNames. The relative path parameter contains a list of relative path elements and the current position of the translate process since the translate can affect more than one node manager and the implementation of this method is only responsible for processing relative path elements and starting nodes managed by the current node manager instance.

Parameters:
serviceContextGeneral context for the service calls containing information like the session object, return diagnostic mask and timeout hint.
startingNodeStarting node from where the relative path is defined.
relativePathRelative path from the starting node to the searched node including the current position of the translate process.
See also:
UaRelativePath provides more details.
Parameters:
browsePathTargetsAll result target nodes for the Browsepath.
Returns:
Error code

Implemented in NodeManagerRoot, and NodeManagerUaNode.


The documentation for this class was generated from the following files:
  • /home/buildbot/work/uasdkcpp/src/uaserver/uaservercpp/coremodule/nodemanager.h
  • /home/buildbot/work/uasdkcpp/src/uaserver/uaservercpp/coremodule/nodemanager.cpp