C++ Based OPC UA Client/Server SDK  1.5.5.355
NodeManagerBase Class Reference

Class providing a simplified base NodeManager, IOManager and optional EventManager implementation for most use cases. More...

#include <nodemanagerbase.h>

Inherits NodeManagerUaNode, EventManagerUaNode, and IOManagerUaNode.

Inherited by NodeManagerNodeSetXml, NodeManagerNS1, NodeManagerRoot, OpcUaDi::NodeManagerDevicesBase, and OpcUaPlc::NodeManagerPLCopenBase.

Public Member Functions

 NodeManagerBase (const UaString &sNamespaceUri, OpcUa_Boolean firesEvents=OpcUa_False, OpcUa_Int32 nHashTableSize=10007)
 Constructs a NodeManagerUaNode object. More...
 
virtual ~NodeManagerBase ()
 Destroys the NodeManagerUaNode object and all nodes managed by the node manager.
 
void setFiresEvents (OpcUa_Boolean firesEvents)
 Set the flag that indicates if the NodeManager fires events. More...
 
void setHistoryManager (HistoryManager *pHistoryManager)
 Set the HistoryManager responsible for the NodeManager. More...
 
void setHistoryManagerForUaNode (const UaNodeId &nodeWithHistory, HistoryManager *pHistoryManager)
 Set the HistoryManager responsible for a node. More...
 
void removeHistoryManagerForUaNode (const UaNodeId &nodeToRemove)
 Remove HistoryManager handling for the node.
 
virtual UaStatus startUp (ServerManager *)
 Start up NodeManager. More...
 
virtual UaStatus getEventManagers (Session *pSession, OpcUa_NodeId *pNodeId, OpcUa_EventFilter *eventFilter, EventManagerArray &eventManagers) const
 Get a list of EventManager interfaces for an event notifier. More...
 
virtual HistoryVariableHandlegetHistoryVariableHandle (Session *pSession, HistoryVariableHandle::ServiceType serviceType, OpcUa_NodeId *pNodeId, UaStatus &result) const
 Get the history variable handle for the passed node Id. More...
 
virtual IOManagergetIOManager (UaNode *pUaNode, OpcUa_Int32 attributeId) const
 Get the responsible IOManager for the node and attribute combination. More...
 
virtual EventManagerUaNodegetEventManagerUaNode ()
 Get the EventManagerUaNode interface if implemented by the class implementing the NodeManagerConfig interface. More...
 
- Public Member Functions inherited from NodeManagerUaNode
 NodeManagerUaNode (const UaString &sNamespaceUri, OpcUa_Int32 nHashTableSize)
 Constructs a NodeManagerUaNode object. More...
 
virtual ~NodeManagerUaNode ()
 Destroys the NodeManagerUaNode object and all nodes managed by the NodeManager. More...
 
virtual UaStatus afterStartUp ()=0
 This method needs to be implemented by the derived class and is called to finish the startup of the NodeManager. More...
 
virtual UaStatus beforeShutDown ()=0
 This method needs to be implemented by the derived class and is called to start the shutdown of the NodeManager. More...
 
virtual UaNodegetNode (const UaNodeId &nodeId)
 Get a UaNode pointer for a requested nodeId. More...
 
void registerBrowseUaNodeCallback (BrowseUaNodeCallback *pBrowseUaNodeCallback)
 Registers a callback interface used to influence browse results.
 
void setDefaultMethodManager (MethodManager *pMethodManager)
 Sets a default MethodManager; used if Object does not implement MethodManager. More...
 
void setFallbackMethodManager (MethodManager *pMethodManager)
 Set a fallback MethodManager; used if Object and Method are not available as UaNode. More...
 
UaStatus addUaNode (UaNode *pNewNode)
 Adds a new UaNode to the node management. More...
 
UaStatus deleteUaNode (UaNode *pNode, OpcUa_Boolean deleteTargetReferences, OpcUa_Boolean deleteSourceReferences=OpcUa_False, OpcUa_Boolean deleteAllChildren=OpcUa_False)
 Removes a UaNode from the node management. More...
 
UaStatus addNodeAndReference (UaReferenceLists *pSourceNode, UaReferenceLists *pNewNode, const UaNodeId &referenceTypeId)
 Adds the new node to the node management and creates a reference. More...
 
UaStatus addNodeAndReference (const UaNodeId &sourceNode, UaReferenceLists *pNewNode, const UaNodeId &referenceTypeId)
 Adds the new node to the node management and creates a reference. More...
 
UaStatus addUaReference (UaReferenceLists *pSourceNode, UaReferenceLists *pTargetNode, const UaNodeId &referenceTypeId)
 Adds a reference from source node to target node. More...
 
UaStatus addUaReference (const UaNodeId &sourceId, const UaNodeId &targetId, const UaNodeId &referenceTypeId)
 Adds a reference from the source node to the target node. More...
 
UaStatus deleteUaReference (UaReferenceLists *pSourceNode, UaReferenceLists *pTargetNode, const UaNodeId &referenceTypeId)
 Deletes the reference from the source node to the target node. More...
 
UaStatus deleteUaReference (const UaNodeId &sourceId, const UaNodeId &targetId, const UaNodeId &referenceTypeId)
 Deletes the reference from the source node to the target node. More...
 
OpcUa_UInt16 getNameSpaceIndex () const
 Get the namespace index of the NodeManager. More...
 
void lockNodes ()
 Lock access to nodes managed by the NodeManagerConfig.
 
void unlockNodes ()
 Unlock access to nodes managed by the NodeManagerConfig.
 
virtual UaStatus shutDown ()
 Shut down module. More...
 
virtual UaStatus browse (const ServiceContext &, BrowseContext &, UaReferenceDescriptions &)
 Discover the references of a specified node of a view. More...
 
virtual UaStatus translateBrowsePathToNodeId (const ServiceContext &, const UaNodeId &, UaRelativePath &, UaBrowsePathTargets &)
 Translates a relative browse path to a node id. More...
 
virtual VariableHandlegetVariableHandle (Session *, VariableHandle::ServiceType, OpcUa_NodeId *, OpcUa_Int32) const
 Get the variable handle for the passed node Id. More...
 
virtual MethodHandlegetMethodHandle (Session *, OpcUa_NodeId *, OpcUa_NodeId *, UaStatus &) const
 Get the method handle for the passed node Id. More...
 
virtual
NodeManagerCrossReferences
getNodeManagerCrossReferences ()
 Get the interface NodeManagerCrossReferences if available. More...
 
virtual NodeManagerConfiggetNodeManagerConfig ()
 Gets the interface NodeManagerConfig if available. More...
 
virtual NodeManagerUaNodegetNodeManagerUaNode ()
 Gets the interface NodeManagerUaNode if available. More...
 
virtual UaStatus connectStartingNode (const UaNodeId &, NodeManager *, OpcUa_Boolean, OpcUa_Boolean)
 Connect a starting node to the passed NodeManager This method is used to tell the NodeManager A (implements this method) that another NodeManager B has a Nodes with references to a Node in A but is not able to specify the list. More...
 
virtual UaStatus disconnectStartingNode (const UaNodeId &, NodeManager *)
 Disconnect a starting node from the passed NodeManager. More...
 
virtual UaStatus addCrossReference (const UaNodeId &, const UaNodeId &, OpcUa_Boolean, const UaNodeId &, NodeManager *)
 Creates a reference between nodes managed by different NodeManagers. More...
 
virtual UaStatus deleteCrossReference (const UaNodeId &, const UaNodeId &, OpcUa_Boolean, const UaNodeId &, NodeManager *)
 Deletes a reference between nodes managed by different NodeManagers. More...
 
UaStatus addTypeDictionary (const UaNodeId &nodeId, const UaString &sName, const UaString &sNamespaceUri=UaString())
 Adds a DataTypeDictionary to the Binary DataTypeSystem. More...
 
UaStatus setTypeDictionary (OpcUa::DataTypeDictionaryType *pTypeDictionary)
 Adds a DataTypeDictionary to the Binary DataTypeSystem without adding nodes. More...
 
UaStatus addTypeDictionaryXml (const UaNodeId &nodeId, const UaString &sName, const UaString &sNamespaceUri=UaString())
 Adds a DataTypeDictionary to the XML DataTypeSystem. More...
 
UaStatus setXmlTypeDictionary (OpcUa::DataTypeDictionaryType *pTypeDictionary)
 Adds a DataTypeDictionary to the XML DataTypeSystem without adding nodes. More...
 
UaStatus addStructuredType (const UaStructureDefinition &structure)
 Adds a new DataType node and all needed DataTypeEncoding and DataTypeDescription nodes. More...
 
UaStatus addStructuredTypes (std::list< UaStructureDefinition > &structures)
 Adds a list of new DataType nodes and all needed DataTypeEncoding and DataTypeDescription nodes. More...
 
UaStatus addStructuredTypeDefinition (const UaStructureDefinition &structure)
 Adds a structured DataType definition without adding nodes. More...
 
UaStatus addEnumeratedType (const UaEnumDefinition &enumeration, const UaNodeId &enumerationPropertyId=UaNodeId())
 Adds a new DataType node and the needed property. More...
 
UaStatus addEnumeratedTypes (std::list< UaEnumDefinition > &enumerations)
 Adds a list of new DataType nodes and the needed property. More...
 
UaStatus addOptionSetType (const UaOptionSetDefinition &optionSet, const UaNodeId &optionSetPropertyId=UaNodeId())
 Adds a new DataType node and the needed property. More...
 
UaStatus addOptionSetTypes (std::list< UaOptionSetDefinition > &optionSets)
 Adds a list of new DataType nodes and the needed property. More...
 
void setDataTypeVersion (const UaString &sDataTypeVersion)
 Sets the version of the dictionaries. More...
 
UaString dataTypeVersion () const
 Returns the version of the dictionaries. More...
 
void findDefinitionsForStructureFields ()
 Searches for UaEnumDefinitions and UaStructureDefinitions in UaStructureFields.
 
virtual
UaDataTypeDictionary::DefinitionType 
definitionType (const UaNodeId &dataTypeId)
 Returns the UaDataTypeDictionary::DefinitionType for a data type. More...
 
virtual UaEnumDefinition enumDefinition (const UaNodeId &dataTypeId)
 Returns the UaEnumDefinition for a specified DataType. More...
 
virtual UaStructureDefinition structureDefinition (const UaNodeId &dataTypeId)
 Returns the UaStructureDefinition for a specified DataType. More...
 
virtual UaOptionSetDefinition optionSetDefinition (const UaNodeId &dataTypeId)
 Returns the UaOptionSetDefinition for the specified data type. More...
 
- Public Member Functions inherited from NodeManager
 NodeManager ()
 construction
 
virtual ~NodeManager ()
 destruction
 
virtual UaStatus sessionOpened (Session *)
 Notifies the node manager that a new session was opened. More...
 
virtual UaStatus sessionActivated (Session *)
 Notifies the node manager that a session was activated. More...
 
virtual UaStatus sessionClosed (Session *)
 Notifies the node manager that a session was closed. More...
 
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)
 Add node to the NodeManager. More...
 
virtual UaStatus addReference (const ServiceContext &serviceContext, const UaNodeId &sourceNodeId, const UaNodeId &referenceTypeId, OpcUa_Boolean isForward, const UaNodeId &targetNodeId, OpcUa_NodeClass targetNodeClass)
 Add reference to the NodeManager. More...
 
virtual UaStatus deleteNode (const ServiceContext &serviceContext, const UaNodeId &nodeId, OpcUa_Boolean deleteTargetReference)
 Delete node from the NodeManager. More...
 
virtual UaStatus deleteReference (const ServiceContext &serviceContext, const UaNodeId &sourceNodeId, const UaNodeId &referenceTypeId, OpcUa_Boolean isForward, const UaNodeId &targetNodeId, OpcUa_Boolean deleteBidirectional)
 Delete reference from the NodeManager. More...
 
- Public Member Functions inherited from NodeManagerConfig
 NodeManagerConfig ()
 construction
 
virtual ~NodeManagerConfig ()
 destruction
 
virtual NodeManagerNodeSetXmlgetNodeManagerNodeSetXml ()
 Get the NodeManagerNodeSetXml interface if implemented by the class implementing the NodeManagerConfig interface. More...
 
- Public Member Functions inherited from NodeManagerCrossReferences
 NodeManagerCrossReferences ()
 construction
 
virtual ~NodeManagerCrossReferences ()
 destruction
 
- Public Member Functions inherited from UaDataTypeDictionary
DefinitionType definitionType (const UaVariant &vValue)
 Returns the UaDataTypeDictionary::DefinitionType of a variant. More...
 
DefinitionType definitionType (const UaExtensionObject &vValue)
 Returns the UaDataTypeDictionary::DefinitionType of an ExtensionObject. More...
 
UaStructureDefinition structureDefinition (const UaVariant &vValue)
 Returns the UaStructureDefinition of a variant. More...
 
UaStructureDefinition structureDefinition (const UaExtensionObject &vValue)
 Returns the UaStructureDefinition of an ExtensionObject. More...
 
- Public Member Functions inherited from EventManagerUaNode
 EventManagerUaNode ()
 Construction.
 
virtual ~EventManagerUaNode ()
 Destruction.
 
virtual UaStatus OnEnable (const ServiceContext &serviceContext, OpcUa::ConditionType *pCondition)
 Event handlers for Condition method Enable called from UA client. More...
 
virtual UaStatus OnDisable (const ServiceContext &serviceContext, OpcUa::ConditionType *pCondition)
 Event handlers for Condition method Disable called from UA client. More...
 
virtual UaStatus OnAddComment (const ServiceContext &serviceContext, OpcUa::ConditionType *pCondition, const UaByteString &EventId, const UaLocalizedText &Comment)
 Event handlers for Condition method AddComment called from UA client. More...
 
virtual UaStatus OnRespond (const ServiceContext &serviceContext, OpcUa::ConditionType *pCondition, OpcUa_UInt32 selectedResponse)
 Event handlers for DialogConditionType method Respond called from UA client. More...
 
virtual UaStatus OnAcknowledge (const ServiceContext &serviceContext, OpcUa::AcknowledgeableConditionType *pCondition, const UaByteString &EventId, const UaLocalizedText &Comment)
 Event handlers for AcknowledgeableConditionType method Acknowledge called from UA client. More...
 
virtual UaStatus OnConfirm (const ServiceContext &serviceContext, OpcUa::AcknowledgeableConditionType *pCondition, const UaByteString &EventId, const UaLocalizedText &Comment)
 Event handlers for AcknowledgeableConditionType method Confirm called from UA client. More...
 
virtual UaStatus OnOneShotShelve (const ServiceContext &serviceContext, OpcUa::AlarmConditionType *pCondition)
 Event handlers for AlarmConditionType method OneShotShelve called from UA client. More...
 
virtual UaStatus OnTimedShelve (const ServiceContext &serviceContext, OpcUa::AlarmConditionType *pCondition, OpcUa_Double ShelvingTime)
 Event handlers for AlarmConditionType method TimedShelve called from UA client. More...
 
virtual UaStatus OnUnshelve (const ServiceContext &serviceContext, OpcUa::AlarmConditionType *pCondition)
 Event handlers for AlarmConditionType method Unshelve called from UA client. More...
 
- Public Member Functions inherited from EventManagerBase
 EventManagerBase ()
 Constructs an EventManagerBase object providing a base implementation of the EventManager interface. More...
 
virtual ~EventManagerBase ()
 Destroys the EventManagerBase object. More...
 
virtual void shutDownEM ()
 Shut down the event manager instance. More...
 
virtual void fireEvent (UaEventData *pEventData)
 Fire an event with the passed event data to interested clients. More...
 
virtual bool beforeSendEvent (UaEventData *pEventData, Session *pSession)
 Checks if the user is allowed to receive the event. More...
 
virtual void registerEventNotifier (const UaNodeId &parentNotifier, const UaNodeId &newNotifier)
 Add an event notifier to the event notifier tree. More...
 
virtual void registerEventSource (const UaNodeId &parentNotifier, const UaNodeId &newSource)
 Add an event source to the event notifier tree. More...
 
virtual void unregisterEventNotifier (const UaNodeId &notifier)
 Removes an event notifier and all of its notifier children and event sources from the event notifier tree. More...
 
virtual OpcUa_Boolean isNotifier (const UaNodeId &eventNotifier) const
 Checks whether the passed NodeId is the NodeId of an event notifier object. More...
 
virtual OpcUa_Boolean isEventManagerRootNotifier (const UaNodeId &notifier) const
 Checks whether the passed NodeId is a root notifier for this EventManager. More...
 
virtual OpcUa_Boolean inNotifierTree (const UaNodeId &eventNotifier, const UaNodeId &sourceNode, UaEventData *pEventData) const
 Checks whether the passed sourceNode matches the event notifier or is part of the event notifier tree below the eventNotifier. More...
 
virtual UaStatus beginEventTransaction (EventManagerCallback *, const ServiceContext &, OpcUa_UInt32, OpcUa_UInt32, EventTransactionType, OpcUa_Handle &)
 Begins a transaction for modifying the list of event monitored items. More...
 
virtual UaStatus beginStartMonitoring (OpcUa_Handle, OpcUa_UInt32, OpcUa_UInt32, EventCallback *, const EventMonitoringContextCreate &)
 Start monitoring of an event notifier. More...
 
virtual UaStatus beginModifyMonitoring (OpcUa_Handle, OpcUa_UInt32, OpcUa_UInt32, OpcUa_UInt32, const EventMonitoringContext &)
 Notify EventManager about modifying monitoring parameters of an event notifier. More...
 
virtual UaStatus beginStopMonitoring (OpcUa_Handle hEventManagerContext, OpcUa_UInt32, OpcUa_UInt32, OpcUa_UInt32)
 Notify EventManager about stopping monitoring of an event notifier. More...
 
virtual UaStatus finishEventTransaction (OpcUa_Handle)
 Finishes the transaction for changing the list of event monitored items. More...
 
virtual UaStatus beginConditionRefresh (const ServiceContext &serviceContext, OpcUa_UInt32 hEventItem, const UaByteString &, const UaByteString &)
 This method triggers a refresh for all conditions of interest in the EventManager. More...
 
virtual UaStatus sendRefreshRequired (OpcUa_UInt32 hEventItem, const UaByteString &eventId)
 This method triggers a RefreshRequired event to the clients This event forces the clients to synchronize with the current Condition states by calling ConditionRefresh This method needs to be implemented in every EventManager that is part of a system that provides condition objects. More...
 
- Public Member Functions inherited from EventManager
 EventManager ()
 construction
 
virtual ~EventManager ()
 destruction
 
- Public Member Functions inherited from IOManagerUaNode
 IOManagerUaNode ()
 Creates an IOManagerUaNode instance initialized with default values. More...
 
virtual ~IOManagerUaNode ()
 Destroys the IOManagerUaNode object. More...
 
virtual UaStatus startUpIO (ServerManager *pServerManager)
 Starts and initalizes the IOManager. More...
 
virtual UaStatus shutDownIO ()
 Shut down IOManager.
 
virtual UaStatus readValues (const UaVariableArray &arrUaVariables, UaDataValueArray &arrDataValues)
 Reads the value attributes for a list of UaVariables. More...
 
virtual UaStatus writeValues (const UaVariableArray &arrUaVariables, const PDataValueArray &arrpDataValues, UaStatusCodeArray &arrStatusCodes)
 Writes the value attributes for a list of UaVariables. More...
 
virtual OpcUa_Boolean beforeSetAttributeValue (Session *pSession, UaNode *pNode, OpcUa_Int32 attributeId, const UaDataValue &dataValue, OpcUa_Boolean &checkWriteMask)
 Event that is called before the value of an attribute of a Node is set. More...
 
virtual void afterSetAttributeValue (Session *pSession, UaNode *pNode, OpcUa_Int32 attributeId, const UaDataValue &dataValue)
 Event that is called after the value of an attribute of a Node was updated. More...
 
virtual void afterGetAttributeValue (Session *pSession, UaNode *pNode, OpcUa_Int32 attributeId, UaDataValue &dataValue)
 Event that is called after the value of an attribute of a Node was read from the node. More...
 
virtual UaStatus beforeMonitorAttributeValue (Session *pSession, UaNode *pNode, OpcUa_Int32 attributeId, OpcUa_Boolean &returnErrorInCreate)
 Event that is called before a data monitored item is created. More...
 
virtual void variableCacheMonitoringChanged (UaVariableCache *pVariable, TransactionType transactionType)
 Event that is called after the monitoring of a cache variable was changed. More...
 
void setTimestampWriteSupport (OpcUa_Boolean isSupported)
 Method used to enable or disable support for writing timestamp. More...
 
void setStatusWriteSupport (OpcUa_Boolean isSupported)
 Method used to enable or disable support for writing status. More...
 
UaStatus beginTransaction (IOManagerCallback *, const ServiceContext &, OpcUa_UInt32, OpcUa_UInt32, OpcUa_Double, OpcUa_TimestampsToReturn, TransactionType, OpcUa_Handle &)
 Begin a IOManager transaction. More...
 
UaStatus beginStartMonitoring (OpcUa_Handle, OpcUa_UInt32, IOVariableCallback *, VariableHandle *, MonitoringContext &)
 Begin start monitoring of an item. More...
 
UaStatus beginModifyMonitoring (OpcUa_Handle, OpcUa_UInt32, OpcUa_UInt32, MonitoringContext &)
 Begin modify monitoring of an item. More...
 
UaStatus beginStopMonitoring (OpcUa_Handle, OpcUa_UInt32, OpcUa_UInt32)
 Begin stop monitoring of an item. More...
 
UaStatus beginRead (OpcUa_Handle, OpcUa_UInt32, VariableHandle *, OpcUa_ReadValueId *)
 Begin reading an attribute value of a node. More...
 
UaStatus beginWrite (OpcUa_Handle, OpcUa_UInt32, VariableHandle *, OpcUa_WriteValue *)
 Begin writing an attribute value for a node. More...
 
UaStatus finishTransaction (OpcUa_Handle)
 Finish a transaction. More...
 
- Public Member Functions inherited from IOManager
 IOManager ()
 Construction.
 
virtual ~IOManager ()
 Destruction.
 

Additional Inherited Members

- Public Types inherited from UaDataTypeDictionary
enum  DefinitionType
 Enumeration that indicates whether a UaEnumDefinition or a UaStructureDefinition is available.
 
- Public Types inherited from EventManager
enum  EventTransactionType { MONITOR_BEGIN, MONITOR_MODIFY, MONITOR_STOP, INVALID }
 EventTransactionType enumeration. More...
 
- Public Types inherited from IOManager
enum  TransactionType {
  TransactionRead, TransactionWrite, TransactionMonitorBegin, TransactionMonitorModify,
  TransactionMonitorStop, TransactionInvalid
}
 TransactionType enumeration. More...
 
- Static Public Member Functions inherited from EventManagerBase
static void buildEventId (const UaByteString &userEventId, UaByteString &clientEventId)
 Build a unique EventId that can be send to the client and include a user specific part if provided. More...
 
static void getUserEventId (const UaByteString &clientEventId, UaByteString &userEventId)
 Get the user part of a unique EventId that was sent to the client. More...
 
static void registerEventType (const UaNodeId &superType, const UaNodeId &newType)
 Adds a custom event type to the event type tree. More...
 
static OpcUa_UInt32 registerEventField (const UaQualifiedName &fieldName)
 Add a custom event field to assign a unique index for selection of the field of the custom type. More...
 
static OpcUa_UInt32 registerEventField (const UaQualifiedNameArray &path)
 Add a custom event field to assign a unique index for selection of the field of the custom type. More...
 
static OpcUa_UInt32 registerEventField (const UaString &fieldName)
 Add a custom event field to assign a unique index for selection of the field of the custom type. More...
 
static void unregisterEventType (const UaNodeId &typeToRemove)
 Removes a custom event type from the event type tree. More...
 
static void unregisterEventField (OpcUa_UInt32 fieldIndex)
 Removes a custom event field with the unique index assigned in EventManagerBase::registerEventField(). More...
 
static OpcUa_UInt32 getFieldIndex (const OpcUa_SimpleAttributeOperand &selectClause, OpcUa_StatusCode &fieldResult)
 Internal SDK method to get the index of a registered event field. More...
 
static OpcUa_Boolean isOfType (const UaNodeId &eventType, const UaNodeId &typeToEvaluate)
 Internal SDK method used to evaluate the event type with the event filter. More...
 
static void clearStaticMembers ()
 Internal SDK method to clean up static members. More...
 
- Protected Member Functions inherited from NodeManagerUaNode
UaStatusCode clearAllNodes ()
 Clears all nodes in the NodeManager and all references to other NodeManagers. More...
 
UaNodefindNode (const UaNodeId &nodeId) const
 Find a UaNode by UaNodeId. More...
 
UaNodefindNode (const OpcUa_NodeId *pNodeId) const
 Find a UaNode by OpcUa_NodeId. More...
 
UaString getNameSpaceUri ()
 Gets the namespace URI of this NodeManager. More...
 
OpcUa_Boolean isStarted ()
 Checks whether the NodeManager is started or not. More...
 
- Protected Attributes inherited from NodeManagerUaNode
ServerManagerm_pServerManager
 Central server manager object.
 
NodeManagerCrossReferencesm_pNodeManagerCrossReferences0
 NodeManagerCrossReferences interface of NodeManager root (namespace 0).
 
NodeManagerListm_pNodeManagerList
 NodeManagerList interface of NodeManager root (namespace 0).
 
UaString m_defaultLocaleId
 Default LocaleId for the NodeManager.
 
OpcUa_Boolean m_isStarted
 Flag indicating whether the NodeManager was started.
 
UaMutex m_mutexNodes
 This mutex is used to synchronize access to the nodes and references in this NodeManager.
 
OpcUa_UInt16 m_nNamespaceIndex
 Namespace index of this NodeManager.
 
UaString m_sNamespaceUri
 Namespace URI of this NodeManager.
 
HashTablem_pTable
 Hash table for the nodes managed by this NodeManager.
 
UaMutex m_mutexAliasTable
 Mutex used to protect access to the cross NodeManager alias nodes.
 
UaObjectPointerArray< UaNodeIdm_crossNodeManagerAliasNodes
 List of cross NodeManager alias nodes.
 
BrowseUaNodeCallbackm_pBrowseUaNodeCallback
 Callback interface to influence browse results.
 
MethodManagerm_pDefaultMethodManager
 Method manager called if object and method were found but object does not implement MethodManager.
 
MethodManagerm_pFallbackMethodManager
 Method manager called with NodeIds if object and method were not found, like for conditions without nodes in address space.
 
TypeDictionariesm_pTypeDictionaries
 Used for managing custom Structured DataTypes and Enumerated DataTypes that are added during runtime. More...
 

Detailed Description

Class providing a simplified base NodeManager, IOManager and optional EventManager implementation for most use cases.

Constructor & Destructor Documentation

NodeManagerBase::NodeManagerBase ( const UaString sNamespaceUri,
OpcUa_Boolean  firesEvents = OpcUa_False,
OpcUa_Int32  nHashTableSize = 10007 
)

Constructs a NodeManagerUaNode object.

Parameters
[in]sNamespaceUriName space URI for the name space managed by this node manager instance
[in]firesEventsFlag indicating if the nodes in this node manager do fire events. The default value is OpcUa_False.
[in]nHashTableSizeSize of the hash table. The default value is 10.007.
The size can be smaller than the total number of nodes managed by the node manager but it is better for the performance to avoid collisions with a large size. Prefered sizes are 1.009, 10.007, 100.003, 1.000.003, 10.000.019

Member Function Documentation

UaStatus NodeManagerBase::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 event notifier node. The pointer to the NodeId is only valid during this call.
eventFilterEvent filter defined by the client. The pointer to the event filter is only valid during this call. The event filter is also passed to EventManager::beginStartMonitoring() in the EventMonitoringContextCreate.
eventManagersThe list of EventManager interfaces for the passed event notifier. This list is returned by the NodeManager.
Returns
Error code

Reimplemented from NodeManager.

Reimplemented in NodeManagerRoot.

EventManagerUaNode * NodeManagerBase::getEventManagerUaNode ( )
virtual

Get the EventManagerUaNode interface if implemented by the class implementing the NodeManagerConfig interface.

The default implementation for the interface returns a NULL pointer. Classes derived from NodeManagerConfig and EventManagerUaNode must overwrite this method and must return the EventManagerUaNode interface. This connection is used to provide the EventManagerUaNode interface to UaCondition classes keeping a NodeManagerConfig interface but needing also the EventManagerUaNode Interface for sending events.

Returns
The method implemented in the interface returns a Null pointer.

Reimplemented from NodeManagerConfig.

HistoryVariableHandle * NodeManagerBase::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
pNodeIdNodeId of the requested node. The pointer to the NodeId is only valid during this call.
resultthe result of the current Operation.
Returns
the history variable handle for the passed node Id.

Reimplemented from NodeManager.

Reimplemented in NodeManagerRoot, and NodeManagerNS1.

IOManager * NodeManagerBase::getIOManager ( UaNode pUaNode,
OpcUa_Int32  attributeId 
) const
virtual

Get the responsible IOManager for the node and attribute combination.

Parameters
pUaNodethe actual Node where to get all information from.
attributeIdAttributeId of the requested node
Returns
a Variable to the IOManager.
Parameters
[in]pUaNodeThe requested UA node
[in]attributeIdAttributeId requested for the node

Implements NodeManagerUaNode.

void NodeManagerBase::setFiresEvents ( OpcUa_Boolean  firesEvents)

Set the flag that indicates if the NodeManager fires events.

void NodeManagerBase::setHistoryManager ( HistoryManager pHistoryManager)

Set the HistoryManager responsible for the NodeManager.

The NodeManagerBase implements getHistoryVariableHandle and provides a history variable handle if the requested node is available. Additional checks need to be implemented in the HistoryManager.

The NodeManagerBase creates a HistoryVariableHandle of the type HistoryVariableHandleUaNode. This type contains the UaNode pointer for the node to read.

void NodeManagerBase::setHistoryManagerForUaNode ( const UaNodeId nodeWithHistory,
HistoryManager pHistoryManager 
)

Set the HistoryManager responsible for a node.

The prefered method is to set a default HistoryManager for all nodes of the NodeManager. This method is only used to assign different HistoryManagers to different nodes managed by the NodeManager.

The NodeManagerBase implements getHistoryVariableHandle and provides a history variable handle if the requested node is available. Additional checks need to be implemented in the HistoryManager.

The NodeManagerBase creates a HistoryVariableHandle of the type HistoryVariableHandleUaNode. This type contains the UaNode pointer for the node to read.

UaStatus NodeManagerBase::startUp ( ServerManager pServerManager)
virtual

Start up NodeManager.

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

Reimplemented from NodeManagerUaNode.

Reimplemented in NodeManagerRoot, and NodeManagerNS1.


The documentation for this class was generated from the following files: