/// <summary> /// Initializes a new instance of the <see cref="RunnableDecisionNode"/> class. /// </summary> /// <param name="id">The id of this decision node.</param> /// <param name="label">The label - useful for debugging.</param> /// <param name="decisionModule">The decision module that is going to be invoked to select nodes to be executed after decision</param> /// <param name="library">The reference to the components library.</param> public RunnableDecisionNode(String id, String label, TraceLab.Core.Decisions.IDecisionModule decisionModule, ComponentsLibrary library, bool waitForAllPredecessors) : base(id, label, new RunnableNodeCollection(), new RunnableNodeCollection(), library, waitForAllPredecessors) { if (decisionModule == null) { throw new ArgumentNullException("decisionModule"); } m_candidateNodes = new RunnableNodeCollection(); m_decisionModule = decisionModule; }
/// <summary> /// Releases unmanaged and - optionally - managed resources /// </summary> /// <param name="disposing"><c>true</c> to release both managed and unmanaged resources; <c>false</c> to release only unmanaged resources.</param> protected override void Dispose(bool disposing) { if (disposing) { if (m_decisionModule != null) { m_decisionModule = null; } } base.Dispose(disposing); }