protected void LinkBuffersRecursively() { foreach (DataFlowComponent predecessor in Predecessors) { if (!predecessor.WasLinked.ContainsKey(this)) { LinkPredicates predicate = null; LinkPredicates.TryGetValue(this, out predicate); predecessor.LinkBuffers(this, predicate); predecessor.WasLinked.Add(this, true); predecessor.LinkBuffersRecursively(); } } foreach (DataFlowComponent successor in Successors) { if (!WasLinked.ContainsKey(successor)) { LinkPredicates predicate = null; LinkPredicates.TryGetValue(successor, out predicate); LinkBuffers(successor, predicate); WasLinked.Add(successor, true); successor.LinkBuffersRecursively(); } } }
internal override void LinkBuffers(DataFlowComponent successor, LinkPredicates linkPredicates) { var s = successor as IDataFlowDestination <TOutput>; var linker = new BufferLinker <TOutput>(linkPredicates); linker.LinkBlocksWithPredicates(SourceBlock, s.TargetBlock); }
internal override void LinkBuffers(DataFlowComponent successor, LinkPredicates linkPredicate) { var s = successor as IDataFlowDestination <ETLBoxError>; var lp = new BufferLinker <ETLBoxError>(linkPredicate); lp.LinkBlocksWithPredicates(SourceBlock, s.TargetBlock); }
internal virtual void LinkBuffers(DataFlowComponent successor, LinkPredicates predicate) { //No linking by default }
internal BufferLinker(LinkPredicates linkPredicates = null) { LinkPredicate = linkPredicates; }