C++ UA Server SDK  1.5.0.318
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Modules Pages
NodeManagerRoot Class Reference

NodeManagerRoot. More...

#include <nodemanagerroot.h>

Inherits NodeManagerBase, and NodeManagerList.

Public Member Functions

virtual ~NodeManagerRoot ()
 destruction
 
NodeManagergetNodeManagerByNamespace (OpcUa_UInt16 NsIdx) const
 Get the NodeManager by namespace index. More...
 
UaStatus addNodeManager (NodeManager *pNodeManager, const UaString &sNamespaceUri, OpcUa_UInt16 &assignedNamespaceIndex)
 Add a NodeManager to the list. More...
 
UaStatus removeNodeManager (OpcUa_UInt16 namespaceIndex)
 Remove a NodeManager from the list. More...
 
UaObjectServerpServerObject () const
 Get the server object. More...
 
OpcUa_StatusCode getNamespaceIndexFromUri (const UaString &sNamespaceUri, OpcUa_UInt16 &namespaceIndex)
 Returns a namespace index for a namespace URI. More...
 
OpcUa_StatusCode getNamespaceUriFromIndex (OpcUa_UInt16 namespaceIndex, UaString &sNamespaceUri) const
 Returns a namespace URI for a namespace index. More...
 
OpcUa_StatusCode getNamespaceIndexFromComAlias (const UaString &comAlias, OpcUa_UInt16 &namespaceIndex)
 Returns a namespace index for a COM alias. More...
 
OpcUa_StatusCode getComAliasFromIndex (OpcUa_UInt16 namespaceIndex, UaString &sComAlias) const
 Returns a COM alias for a namespace index. More...
 
void startServerShutDown (OpcUa_Int32 secondsTillShutdown, const UaLocalizedText &shutdownReason)
 Inform the node manager about the shutdown of the server. More...
 
void startServerShutDown (OpcUa_Int32 secondsTillShutdown, const UaLocalizedTextArray &shutdownReason)
 Inform the node manager about the shutdown of the server. More...
 
void changeServerState (OpcUa_ServerState newState)
 Update the server manager about the change of the server state. More...
 
void changeServiceLevel (OpcUa_Byte serviceLevel, OpcUa_Byte changeMask)
 Update the ServiceLevel property of the Server object. More...
 
UaNodegetNode (const UaNodeId &nodeId)
 Get a UaNode pointer for a requested nodeId. More...
 
UaStatus browse (const UaNodeId &startingNode, const UaNodeId &referenceTypeFilter, ContinuationPointWrapper &continuationPoint, UaReferenceDescriptions &references)
 Browse function for internal use for forward browsing. More...
 
UaStatus browse (const UaNodeId &startingNode, OpcUa_Boolean isInverse, const UaNodeId &referenceTypeFilter, OpcUa_UInt32 nodeClassMask, ContinuationPointWrapper &continuationPoint, UaReferenceDescriptions &references)
 Browse function for internal use. More...
 
UaStatus browse (Session *pSession, const UaNodeId &startingNode, OpcUa_Boolean isInverse, const UaNodeId &referenceTypeFilter, OpcUa_UInt32 nodeClassMask, ContinuationPointWrapper &continuationPoint, UaReferenceDescriptions &references)
 Browse function for internal use. More...
 
UaStatus getListOfSuperTypes (const UaNodeId &startingNode, UaNodeIdArray &superTypeList)
 Returns the list of super types for a passed OPC UA type node. More...
 
ServerManagerpServerManager ()
 Get the server manager. More...
 
UaStatus startUp (ServerManager *pServerManager)
 Start up NodeManager. More...
 
UaStatus sessionOpened (Session *session)
 Notifies the node manager that a new session was opened. More...
 
UaStatus sessionActivated (Session *session)
 Notifies the node manager that a session was activated. More...
 
UaStatus sessionClosed (Session *session)
 Notifies the node manager that a session was closed. More...
 
UaStatus browse (const ServiceContext &serviceContext, BrowseContext &browseContext, UaReferenceDescriptions &references)
 Discover the references of a specified node of a view. More...
 
UaStatus translateBrowsePathToNodeId (const ServiceContext &serviceContext, const UaNodeId &startingNode, UaRelativePath &relativePath, UaBrowsePathTargets &browsePathTargets)
 Translates a relative browse path to a node id. More...
 
VariableHandlegetVariableHandle (Session *pSession, VariableHandle::ServiceType serviceType, OpcUa_NodeId *pNodeId, OpcUa_Int32 AttributeId) const
 Get the variable handle for the passed node Id. More...
 
HistoryVariableHandlegetHistoryVariableHandle (Session *pSession, HistoryVariableHandle::ServiceType serviceType, OpcUa_NodeId *pNodeId, UaStatus &result) const
 Get the history variable handle for the passed node Id. More...
 
UaStatus getEventManagers (Session *pSession, OpcUa_NodeId *pNodeId, OpcUa_EventFilter *eventFilter, EventManagerArray &eventManagers) const
 Get a list of EventManager interfaces for an event notifier. More...
 
MethodHandlegetMethodHandle (Session *pSession, OpcUa_NodeId *pObjectNodeId, OpcUa_NodeId *pMethodNodeId, UaStatus &result) const
 Get the method handle for the passed node Id. More...
 
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...
 
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...
 
UaStatus deleteNode (const ServiceContext &serviceContext, const UaNodeId &nodeId, OpcUa_Boolean deleteTargetReference)
 Delete node from the NodeManager. More...
 
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...
 
NodeManagerCrossReferencesgetNodeManagerCrossReferences ()
 Get the interface NodeManagerCrossReferences if available. More...
 
NodeManagerConfiggetNodeManagerConfig ()
 Get the interface NodeManagerConfig if available. More...
 
UaStatus afterStartUp ()
 Finish start up in derived class after starting up base class. More...
 
UaStatus beforeShutDown ()
 Start shut down in derived class before shutting down base class. More...
 
UaStatus readValues (const UaVariableArray &arrUaVariables, UaDataValueArray &arrDataValues)
 Reads the value attributes for a list of UaVariables. More...
 
UaStatus writeValues (const UaVariableArray &arrUaVariables, const PDataValueArray &arrpDataValues, UaStatusCodeArray &arrStatusCodes)
 Writes the value attributes for a list of UaVariables. More...
 
- Public Member Functions inherited from NodeManagerBase
 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 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...
 
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 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
 
- Public Member Functions inherited from NodeManagerConfig
 NodeManagerConfig ()
 construction
 
virtual ~NodeManagerConfig ()
 destruction
 
- 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 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.
 
- Public Member Functions inherited from NodeManagerList
 NodeManagerList ()
 construction
 
virtual ~NodeManagerList ()
 destruction
 

Static Public Member Functions

static NodeManagerRootCreateRootNodeManager ()
 construction
 
static OpcUa_Int16 getTypeNamespace ()
 Get the type namespace index. 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...
 

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...
 
- 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

NodeManagerRoot.

Class definition of the NodeManagerRoot. Create Sessions, starts up the Server. This class controls the session and gives access to all possible browse possibilities. It is also possible to add new nodes/references, or to delete old nodes/references. Here also the shutdown of the server will be prepared. Derived from NodeManagerUaNode, IOManagerUaNode and NodeManagerList It is not possible to create shallow copies of this Class.

Member Function Documentation

UaStatus NodeManagerRoot::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 parentNodeId of the current Node.
referenceTypeIdType of the reference to create from the source node to the new node.
requestedNewNodeIdthe new NodeId of the requested Node.
browseNamethe actual browse name of the Node.
nodeClassthe actual node class of the Node.
nodeAttributesall attributes of the current Node.
typeDefinitionthe Definition of the actual Node.
addedNodeIdthe added NodeId.
Returns
Error code

Reimplemented from NodeManager.

UaStatus NodeManagerRoot::addNodeManager ( NodeManager pNodeManager,
const UaString sNamespaceUri,
OpcUa_UInt16 &  assignedNamespaceIndex 
)
virtual

Add a NodeManager to the list.

Parameters
pNodeManagerPointer to NodeManager that manages references from the starting node to nodes in the that NodeManager.
sNamespaceUriNamespace URI used for the NodeManager.
assignedNamespaceIndexAssigned namespace index of the added NodeManager.
Returns
Error code

Implements NodeManagerList.

UaStatus NodeManagerRoot::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 source NodeId of the actual Node.
referenceTypeIdType of the reference to create from the source node to the new node.
isForwardindicates if the Node is forward referenced or not.
targetNodeIdthe NodeId of the target Node.
targetNodeClassthe NodeClass of the target Node.
Returns
Error code

Reimplemented from NodeManager.

UaStatus NodeManagerRoot::afterStartUp ( )
virtual

Finish start up in derived class after starting up base class.

Returns
Error code

Implements NodeManagerUaNode.

UaStatus NodeManagerRoot::beforeShutDown ( )
virtual

Start shut down in derived class before shutting down base class.

Returns
Error code

Implements NodeManagerUaNode.

UaStatus NodeManagerRoot::browse ( const UaNodeId startingNode,
const UaNodeId referenceTypeFilter,
ContinuationPointWrapper continuationPoint,
UaReferenceDescriptions references 
)

Browse function for internal use for forward browsing.

This method provides a simplified browse function for internal use. It uses the normal NodeManager::browse but hides the handling that is necessary for the remote access from a client.

This version of the simplified browse is browsing forward and returns all node classes.

Returns
Status result code for the call.
Parameters
[in]startingNodeStarting node for the browse call
[in]referenceTypeFilterReference type filter to return only nodes referenced from the starting node with this reference type or a subtype
[in,out]continuationPointContinuation point for the browse. Indicates if more results are available
[out]referencesList of browse results for the browsed node
UaStatus NodeManagerRoot::browse ( const UaNodeId startingNode,
OpcUa_Boolean  isInverse,
const UaNodeId referenceTypeFilter,
OpcUa_UInt32  nodeClassMask,
ContinuationPointWrapper continuationPoint,
UaReferenceDescriptions references 
)

Browse function for internal use.

This method provides a simplified browse function for internal use. It uses the normal NodeManager::browse but hides the handling that is necessary for the remote access from a client.

Returns
Status result code for the call.
Parameters
[in]startingNodeStarting node for the browse call
[in]isInverseFlag indicating if the browse is inverse (True) or forward (False)
[in]referenceTypeFilterReference type filter to return only nodes referenced from the starting node with this reference type or a subtype
[in]nodeClassMaskNode class filter mask identifing the node classes to include in the browse result Bit mask containing the following options:
OpcUa_NodeClass_Object = 1
OpcUa_NodeClass_Variable = 2
OpcUa_NodeClass_Method = 4
OpcUa_NodeClass_ObjectType = 8
OpcUa_NodeClass_VariableType = 16
OpcUa_NodeClass_ReferenceType = 32
OpcUa_NodeClass_DataType = 64
OpcUa_NodeClass_View = 128
If set to zero, all node classes are returned.
[in,out]continuationPointContinuation point for the browse. Indicates if more results are available
[out]referencesList of browse results for the browsed node
UaStatus NodeManagerRoot::browse ( Session pSession,
const UaNodeId startingNode,
OpcUa_Boolean  isInverse,
const UaNodeId referenceTypeFilter,
OpcUa_UInt32  nodeClassMask,
ContinuationPointWrapper continuationPoint,
UaReferenceDescriptions references 
)

Browse function for internal use.

This method provides a simplified browse function for internal use. It uses the normal NodeManager::browse but hides the handling that is necessary for the remote access from a client.

Returns
Status result code for the call.
Parameters
[in]pSessionSession context for the browse call
[in]startingNodeStarting node for the browse call
[in]isInverseFlag indicating if the browse is inverse (True) or forward (False)
[in]referenceTypeFilterReference type filter to return only nodes referenced from the starting node with this reference type or a subtype
[in]nodeClassMaskNode class filter mask identifing the node classes to include in the browse result Bit mask containing the following options:
OpcUa_NodeClass_Object = 1
OpcUa_NodeClass_Variable = 2
OpcUa_NodeClass_Method = 4
OpcUa_NodeClass_ObjectType = 8
OpcUa_NodeClass_VariableType = 16
OpcUa_NodeClass_ReferenceType = 32
OpcUa_NodeClass_DataType = 64
OpcUa_NodeClass_View = 128
If set to zero, all node classes are returned.
[in,out]continuationPointContinuation point for the browse. Indicates if more results are available
[out]referencesList of browse results for the browsed node
UaStatus NodeManagerRoot::browse ( const ServiceContext serviceContext,
BrowseContext browseContext,
UaReferenceDescriptions references 
)
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 calls containing information like the session object, return diagnostic mask and timeout hint.
browseContextBrowse context for the first browse or the following browse with continuation point.
referencesArray of ReferenceDescription results for the browsed node.
Returns
Error code

Reimplemented from NodeManagerUaNode.

void NodeManagerRoot::changeServerState ( OpcUa_ServerState  newState)

Update the server manager about the change of the server state.

Parameters
newStateNew server status.
void NodeManagerRoot::changeServiceLevel ( OpcUa_Byte  serviceLevel,
OpcUa_Byte  changeMask 
)

Update the ServiceLevel property of the Server object.

Parameters
serviceLevelThe new service level to set.
changeMaskA mask indicating which bits of the service level should be set. If a bit is set to 1, the according bit of serviceLevel is set in the server's serviceLevel. If a bit is set to 0, the according bit in the server's serviceLevel will remain untouched.
UaStatus NodeManagerRoot::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 Id of the current Node.
deleteTargetReferenceIndicates if the inverse references in the target nodes must be deleted
Returns
Error code

Reimplemented from NodeManager.

UaStatus NodeManagerRoot::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 source NodeId of the actual Node.
referenceTypeIdType of the reference to create from the source node to the new node.
isForwardindicates if the Node is forward referenced or not.
targetNodeIdthe NodeId of the target Node.
deleteBidirectionalTRUE if delete bidirectional FALSE if not.
Returns
Error code

Reimplemented from NodeManager.

OpcUa_StatusCode NodeManagerRoot::getComAliasFromIndex ( OpcUa_UInt16  namespaceIndex,
UaString sComAlias 
) const

Returns a COM alias for a namespace index.

Parameters
namespaceIndexNamespace index to convert to the namespace URI.
sComAliasCOM alias for the passed namespace index.
Returns
Error code
UaStatus NodeManagerRoot::getEventManagers ( Session pSession,
OpcUa_NodeId pNodeId,
OpcUa_EventFilter eventFilter,
EventManagerArray eventManagers 
) const
virtual

Get a list of EventManager interfaces for an event notifier.

Parameters
pSessionInterface pointer of the new Session. The session was created by the ServerConfig object in the Method createSession. This vendor specific implementation can create a derived Session class with vendor specific information.
pNodeIdNodeId of the requested node
eventFilterEvent filter defined by the client
eventManagersa list of EventManager interfaces for an event notifier.
Returns
Error code

Reimplemented from NodeManagerBase.

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

Get the history variable handle for the passed node Id.

Parameters
pSessionInterface pointer of the new Session. The session was created by the ServerConfig object in the Method createSession. This vendor specific implementation can create a derived Session class with vendor specific information.
serviceTypeService type enumerator
pNodeIdNodeId of the requested Node.
resultthe result of the current Operation.
Returns
the history variable handle for the passed node Id.

Reimplemented from NodeManagerBase.

UaStatus NodeManagerRoot::getListOfSuperTypes ( const UaNodeId startingNode,
UaNodeIdArray superTypeList 
)

Returns the list of super types for a passed OPC UA type node.

Returns
Status result code for the call.
Parameters
[in]startingNodeStarting type node for the type tree resolution
[out]superTypeListList of super types for the passed type node
MethodHandle * NodeManagerRoot::getMethodHandle ( Session pSession,
OpcUa_NodeId pObjectNodeId,
OpcUa_NodeId pMethodNodeId,
UaStatus result 
) const
virtual

Get the method handle for the passed node Id.

Parameters
pSessionInterface pointer of the new Session. The session was created by the ServerConfig object in the Method createSession. This vendor specific implementation can create a derived Session class with vendor specific information.
pObjectNodeIdthe NodeId of the actual Object.
pMethodNodeIdthe NodeId of the actual Method.
resultthe result of the current Operation.
Returns
the method handle for the passed node Id.

Reimplemented from NodeManagerUaNode.

OpcUa_StatusCode NodeManagerRoot::getNamespaceIndexFromComAlias ( const UaString comAlias,
OpcUa_UInt16 &  namespaceIndex 
)

Returns a namespace index for a COM alias.

Parameters
comAliasCOM alias to convert to the namespace index.
namespaceIndexThe Namespace index for the passed namespace URI.
Returns
Error code
OpcUa_StatusCode NodeManagerRoot::getNamespaceIndexFromUri ( const UaString sNamespaceUri,
OpcUa_UInt16 &  namespaceIndex 
)

Returns a namespace index for a namespace URI.

Parameters
sNamespaceUriNamespace URI to convert to the namespace index.
namespaceIndexThe Namespace index for the passed namespace URI.
Returns
Error code
OpcUa_StatusCode NodeManagerRoot::getNamespaceUriFromIndex ( OpcUa_UInt16  namespaceIndex,
UaString sNamespaceUri 
) const

Returns a namespace URI for a namespace index.

Parameters
namespaceIndexNamespace index to convert to the namespace URI.
sNamespaceUriNamespace URI for the passed namespace index.
Returns
Error code
UaNode * NodeManagerRoot::getNode ( const UaNodeId nodeId)
virtual

Get a UaNode pointer for a requested nodeId.

If a UaNode object is found for the nodeId the reference count of the node gets incremented and a pointer to the node ist returned. The caller must release the reference when the node is not longer needed.

Parameters
nodeIdNodeId of the node to return.
Returns
The requested node. Null if node was not found. The reference count for the found node is incremented.

Reimplemented from NodeManagerUaNode.

NodeManager * NodeManagerRoot::getNodeManagerByNamespace ( OpcUa_UInt16  NsIdx) const
virtual

Get the NodeManager by namespace index.

Parameters
NsIdxthe Namespace index of the current Node.
Returns
Interface pointer of NodeManager.

Implements NodeManagerList.

NodeManagerConfig * NodeManagerRoot::getNodeManagerConfig ( )
virtual

Get the interface NodeManagerConfig if available.

Returns
the NodeManagerConfig Variable.

Reimplemented from NodeManagerUaNode.

NodeManagerCrossReferences * NodeManagerRoot::getNodeManagerCrossReferences ( )
virtual

Get the interface NodeManagerCrossReferences if available.

Returns
the NodeManagerCrossReferences Variable.

Reimplemented from NodeManagerUaNode.

static OpcUa_Int16 NodeManagerRoot::getTypeNamespace ( )
inlinestatic

Get the type namespace index.

VariableHandle * NodeManagerRoot::getVariableHandle ( Session pSession,
VariableHandle::ServiceType  serviceType,
OpcUa_NodeId pNodeId,
OpcUa_Int32  AttributeId 
) const
virtual

Get the variable handle for the passed node Id.

Parameters
pSessionInterface pointer of the new Session. The session was created by the ServerConfig object in the Method createSession. This vendor specific implementation can create a derived Session class with vendor specific information.
serviceTypeService type enumerator
pNodeIdNodeId of the requested Node.
AttributeIdAttributeId of the requested node
Returns
the variable handle for the passed node Id.

Reimplemented from NodeManagerUaNode.

ServerManager* NodeManagerRoot::pServerManager ( )
inline

Get the server manager.

UaObjectServer* NodeManagerRoot::pServerObject ( ) const
inline

Get the server object.

Returns
the new created server object.
UaStatus NodeManagerRoot::readValues ( const UaVariableArray arrUaVariables,
UaDataValueArray arrDataValues 
)
virtual

Reads the value attributes for a list of UaVariables.

Parameters
arrUaVariablesAn array of UaVariable interface pointers used to indicate which variables should be read. The implementation of the interface needs to have the necessary information to access the data from the external source.
arrDataValuesAn array of OpcUa_DataValue structures used to return the values to read.
Returns
Error code

Reimplemented from IOManagerUaNode.

UaStatus NodeManagerRoot::removeNodeManager ( OpcUa_UInt16  namespaceIndex)
virtual

Remove a NodeManager from the list.

Parameters
namespaceIndexAssigned namespace index of the added NodeManager.
Returns
Error code

Implements NodeManagerList.

UaStatus NodeManagerRoot::sessionActivated ( Session pSession)
virtual

Notifies the node manager that a session was activated.

Parameters
pSessionInterface pointer of the activated Session. The session was created by the ServerConfig object in the Method createSession. This vendor specific implementation can create a derived Session class with vendor specific information.
Returns
Error code

Reimplemented from NodeManager.

UaStatus NodeManagerRoot::sessionClosed ( Session pSession)
virtual

Notifies the node manager that a session was closed.

Parameters
pSessionInterface pointer of the closed Session. The session was created by the ServerConfig object in the Method createSession. This vendor specific implementation can create a derived Session class with vendor specific information.
Returns
Error code

Reimplemented from NodeManager.

UaStatus NodeManagerRoot::sessionOpened ( Session pSession)
virtual

Notifies the node manager that a new session was opened.

Parameters
pSessionInterface pointer of the new Session. The session was created by the ServerConfig object in the Method createSession. This vendor specific implementation can create a derived Session class with vendor specific information.
Returns
Error code

Reimplemented from NodeManager.

void NodeManagerRoot::startServerShutDown ( OpcUa_Int32  secondsTillShutdown,
const UaLocalizedText shutdownReason 
)

Inform the node manager about the shutdown of the server.

Parameters
[in]secondsTillShutdownSeconds till shutdown of the server
[in]shutdownReasonReason for the shutdown
void NodeManagerRoot::startServerShutDown ( OpcUa_Int32  secondsTillShutdown,
const UaLocalizedTextArray shutdownReason 
)

Inform the node manager about the shutdown of the server.

This is an overload to provide the shutdown reason as a list of localized text in different languages

Parameters
[in]secondsTillShutdownSeconds till shutdown of the server
[in]shutdownReasonReason for the shutdown in different languages
UaStatus NodeManagerRoot::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 NodeManagerBase.

UaStatus NodeManagerRoot::translateBrowsePathToNodeId ( const ServiceContext serviceContext,
const UaNodeId startingNode,
UaRelativePath relativePath,
UaBrowsePathTargets browsePathTargets 
)
virtual

Translates a relative browse path to a node id.

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.
browsePathTargetsall needed targets of the browse path.
Returns
Error code

Reimplemented from NodeManagerUaNode.

UaStatus NodeManagerRoot::writeValues ( const UaVariableArray arrUaVariables,
const PDataValueArray arrpDataValues,
UaStatusCodeArray arrStatusCodes 
)
virtual

Writes the value attributes for a list of UaVariables.

Parameters
arrUaVariablesAn array of UaVariable interface pointers used to indicate which variables should be read. The implementation of the interface needs to have the necessary information to access the data from the external source.
arrpDataValuesArray of pointers to OpcUa_DataValue structures containing the data to write.
arrStatusCodesAn array of OpcUa_StatusCode values used to indicate if the write succeeds on a single variable base.
Returns
Error code

Reimplemented from IOManagerUaNode.


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