Opc.Ua.Server.BaseInstanceSource.Initialize C# (CSharp) Method

Initialize() public method

Sets the NodeId, BrowseName and TypeDefinition
public Initialize ( NodeId referenceTypeId, NodeId nodeId, QualifiedName browseName, uint numericId, NodeId typeDefinitionId ) : NodeId
referenceTypeId NodeId
nodeId NodeId
browseName QualifiedName
numericId uint
typeDefinitionId NodeId
return NodeId
        public virtual NodeId Initialize(
            NodeId          referenceTypeId,
            NodeId          nodeId,
            QualifiedName   browseName,
            uint            numericId,
            NodeId          typeDefinitionId)
        { 
            lock (DataLock)
            {
                // do any pre-initialize processing.
                OnBeforeInitialize();

                // initialize the base.
                base.Initialize(nodeId, browseName, numericId);

                // save the reference type to the parent.
                m_referenceTypeId = referenceTypeId;
                    
                // select a suitable type definition.
                if (NodeClass == NodeClass.Object)
                {
                    if (NodeId.IsNull(typeDefinitionId))
                    {
                        typeDefinitionId = ObjectTypes.BaseObjectType;
                    }
                }
                else if (NodeClass == NodeClass.Variable)
                {
                    if (NodeId.IsNull(typeDefinitionId))
                    {
                        typeDefinitionId = VariableTypes.BaseDataVariableType;
                    }
                }
                
                m_typeDefinitionId = typeDefinitionId;

                // methods don't have a type definition.
                if (!NodeId.IsNull(typeDefinitionId))
                {
                    References.RemoveAll(ReferenceTypeIds.HasTypeDefinition, false);
                    References.Add(ReferenceTypeIds.HasTypeDefinition, false, m_typeDefinitionId);
                }
                
                // initialize the children.
                InitializeChildren();

                // do any post-initialize processing.
                OnAfterInitialize();

                return NodeId;
            }
        }
        

Same methods

BaseInstanceSource::Initialize ( NodeSource source ) : void

Usage Example

コード例 #1
0
        /// <summary>
        /// Replaces a shared child in the address space.
        /// </summary>
        protected virtual BaseInstanceSource ReplaceSharedChild(
            BaseInstanceSource child, 
            NodeId             nodeId,
            NodeId             referenceTypeId,
            QualifiedName      browseName,
            uint               numericId,
            NodeId             typeDefinitionId,
            object             configuration)
        {  
            CheckNodeManagerState();

            // remove links to shared node.
            NodeManager.UnreferenceSharedNode(this, referenceTypeId, false, browseName);

            // initialize replacement.
            child.Initialize(nodeId, referenceTypeId, browseName, numericId, typeDefinitionId);

            // add replacement to the address space.
            child.Create(this.NodeId, child.ReferenceTypeId, null, null, child.NumericId, configuration);
            
            // return replacement.
            return child;
        }