예제 #1
0
        /// <summary>
        /// Adds the node.
        /// </summary>
        /// <param name="id">The id.</param>
        /// <param name="metadata">The metadata.</param>
        public override void AddNode(String id, Metadata metadata, LoggerNameRoot loggerNameRoot)
        {
            // adds a node to the graph
            RunnableNode node = m_nodesFactory.CreateNode(id, metadata, loggerNameRoot, Library, ComponentsAppDomain, TerminateExperimentExecutionResetEvent);

            if (node is RunnableStartNode)
            {
                //allow set only once
                if (m_startNode != null)
                {
                    throw new TraceLab.Core.Exceptions.InconsistentTemplateException("Template cannot have two start nodes defined.");
                }
                m_startNode = node;
            }
            if (node is RunnableEndNode)
            {
                //allow set only once
                if (m_endNode != null)
                {
                    throw new TraceLab.Core.Exceptions.InconsistentTemplateException("Template cannot have two end nodes defined.");
                }
                m_endNode = node;
            }
            m_nodes.Add(node);
        }
예제 #2
0
 /// <summary>
 /// Adds the next successor node. It also stores the node in the candidate nodes.
 /// </summary>
 /// <param name="node">The node.</param>
 public override void AddNextNode(IRunnableNode node)
 {
     base.AddNextNode(node);
     m_candidateNodes.Add(node);
 }