/// <summary> /// Links to a target block. /// </summary> /// <typeparam name="T"></typeparam> /// <param name="builder"></param> /// <param name="targetBlock"></param> /// <param name="predicate"></param> /// <param name="declinedTargetBlock"></param> /// <returns></returns> public static IBroadcastDataflowBuilder <T> LinkTo <T>( this IBroadcastDataflowBuilder <T> builder , ITargetBlock <T> targetBlock , Predicate <T> predicate , ITargetBlock <T> declinedTargetBlock = null) { return(builder.LinkTo(targetBlock, DataflowDefaultOptions.DefaultLinkOptions, predicate, declinedTargetBlock, DataflowDefaultOptions.DefaultLinkOptions)); }
/// <summary> /// Links to a target block. /// </summary> /// <typeparam name="T"></typeparam> /// <param name="builder"></param> /// <param name="targetBlock"></param> /// <param name="linkOptions"></param> /// <param name="predicate"></param> /// <param name="declinedTargetBlock"></param> /// <param name="declinedLinkOptions"></param> /// <returns></returns> public static IBroadcastDataflowBuilder <T> LinkTo <T>( this IBroadcastDataflowBuilder <T> builder , ITargetBlock <T> targetBlock , DataflowLinkOptions linkOptions , Predicate <T> predicate , ITargetBlock <T> declinedTargetBlock , DataflowLinkOptions declinedLinkOptions) { if (builder == null) { return(null); } if (targetBlock == null) { throw new ArgumentNullException("targetBlock"); } if (linkOptions == null) { throw new ArgumentNullException("linkOptions"); } if (predicate == null) { throw new ArgumentNullException("predicate"); } if (declinedTargetBlock == null) { throw new ArgumentNullException("declinedTargetBlock"); } if (declinedLinkOptions == null) { throw new ArgumentNullException("declinedLinkOptions"); } var nextBuilder = builder.LinkTo(targetBlock, linkOptions, predicate); if (declinedTargetBlock != null) { // LinkTo declined target LinkHelper.Link((builder as BroadcastDataflowBuilder <T>).BroadcastBock, declinedTargetBlock, declinedLinkOptions ?? DataflowDefaultOptions.DefaultLinkOptions); } return(nextBuilder); }