コード例 #1
0
 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();
         }
     }
 }
コード例 #2
0
        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);
        }
コード例 #3
0
ファイル: ErrorSource.cs プロジェクト: whx76/etlbox
        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);
        }
コード例 #4
0
 internal virtual void LinkBuffers(DataFlowComponent successor, LinkPredicates predicate)
 {
     //No linking by default
 }
コード例 #5
0
ファイル: BufferLinker.cs プロジェクト: whx76/etlbox
 internal BufferLinker(LinkPredicates linkPredicates = null)
 {
     LinkPredicate = linkPredicates;
 }