Table of Contents

Interface IPipelineBuilder

Namespace
DotnetKit.DataflowBuilder.Abstractions
Assembly
DotnetKit.DataflowBuilder.dll

Defines core operations and factory methods for assembling, configuring, and linking dataflow blocks within a pipeline.

public interface IPipelineBuilder

Properties

CancellationToken

Gets the cancellation token associated with the pipeline execution lifecycle.

CancellationToken CancellationToken { get; }

Property Value

CancellationToken

Methods

AddPropagatorBlock<TInput, TOutput>(IPropagatorBlock<TInput, TOutput>)

Links the last block in the pipeline to the specified propagator block and registers it as the current head block.

void AddPropagatorBlock<TInput, TOutput>(IPropagatorBlock<TInput, TOutput> propagatorBlock)

Parameters

propagatorBlock IPropagatorBlock<TInput, TOutput>

The propagator block to append to the pipeline.

Type Parameters

TInput

The input data type expected by the propagator block.

TOutput

The output data type produced by the propagator block.

AddTargetBlock<TInput>(ITargetBlock<TInput>)

Links the last block in the pipeline to the specified terminal target block and registers it.

void AddTargetBlock<TInput>(ITargetBlock<TInput> targetBlock)

Parameters

targetBlock ITargetBlock<TInput>

The target block terminating the pipeline.

Type Parameters

TInput

The input data type accepted by the target block.

CreateActionBlock<TInput>(Action<TInput>, int)

Creates a synchronous terminal action block (ActionBlock<TInput>) with error handling.

ITargetBlock<TInput> CreateActionBlock<TInput>(Action<TInput> targetAction, int maxDegreeOfParallelism)

Parameters

targetAction Action<TInput>

The synchronous consumer action invoked for each incoming item.

maxDegreeOfParallelism int

The maximum number of concurrent tasks allowed.

Returns

ITargetBlock<TInput>

A configured target block.

Type Parameters

TInput

The input item type.

CreateAscynActionBlock<TInput>(Func<TInput, Task>, int)

Creates an asynchronous terminal action block (ActionBlock<TInput>) with error handling.

[Obsolete("Use CreateAsyncActionBlock instead. This method has a typo and will be removed in a future release.")]
ITargetBlock<TInput> CreateAscynActionBlock<TInput>(Func<TInput, Task> targetAction, int maxDegreeOfParallelism)

Parameters

targetAction Func<TInput, Task>

The asynchronous consumer action invoked for each incoming item.

maxDegreeOfParallelism int

The maximum number of concurrent tasks allowed.

Returns

ITargetBlock<TInput>

A configured target block.

Type Parameters

TInput

The input item type.

CreateAsyncActionBlock<TInput>(Func<TInput, Task>, int)

Creates an asynchronous terminal action block (ActionBlock<TInput>) with error handling.

ITargetBlock<TInput> CreateAsyncActionBlock<TInput>(Func<TInput, Task> targetAction, int maxDegreeOfParallelism)

Parameters

targetAction Func<TInput, Task>

The asynchronous consumer action invoked for each incoming item.

maxDegreeOfParallelism int

The maximum number of concurrent tasks allowed.

Returns

ITargetBlock<TInput>

A configured target block.

Type Parameters

TInput

The input item type.

CreateAsyncTransformBlock<TInput, TOutput>(Func<TInput, Task<TOutput>>, int)

Creates an asynchronous transformation propagator block (TransformBlock<TInput, TOutput>) with error handling.

IPropagatorBlock<TInput, TOutput> CreateAsyncTransformBlock<TInput, TOutput>(Func<TInput, Task<TOutput>> propagatorFunc, int maxDegreeOfParallelism)

Parameters

propagatorFunc Func<TInput, Task<TOutput>>

The asynchronous transformation function.

maxDegreeOfParallelism int

The maximum number of concurrent operations allowed.

Returns

IPropagatorBlock<TInput, TOutput>

A configured propagator block.

Type Parameters

TInput

The input item type.

TOutput

The transformed output item type.

CreateAsyncTransformManyBlock<TInput, TOutput>(Func<TInput, Task<IEnumerable<TOutput>>>, int)

Creates an asynchronous one-to-many transformation propagator block (TransformManyBlock<TInput, TOutput>) with error handling.

IPropagatorBlock<TInput, TOutput> CreateAsyncTransformManyBlock<TInput, TOutput>(Func<TInput, Task<IEnumerable<TOutput>>> propagatorFunc, int maxDegreeOfParallelism)

Parameters

propagatorFunc Func<TInput, Task<IEnumerable<TOutput>>>

The asynchronous transformation function returning a sequence of output items.

maxDegreeOfParallelism int

The maximum number of concurrent operations allowed.

Returns

IPropagatorBlock<TInput, TOutput>

A configured propagator block.

Type Parameters

TInput

The input item type.

TOutput

The individual output item type yielded by the sequence.

CreateBatchBlock<TInput>(int)

Creates a batching propagator block (BatchBlock<T>) that groups incoming items into fixed-size arrays.

IPropagatorBlock<TInput, TInput[]> CreateBatchBlock<TInput>(int batchSize)

Parameters

batchSize int

The maximum number of items in each batch.

Returns

IPropagatorBlock<TInput, TInput[]>

A configured batching propagator block.

Type Parameters

TInput

The input item type.

CreateTransformBlock<TInput, TOutput>(Func<TInput, TOutput>, int)

Creates a synchronous transformation propagator block (TransformBlock<TInput, TOutput>) with error handling.

IPropagatorBlock<TInput, TOutput> CreateTransformBlock<TInput, TOutput>(Func<TInput, TOutput> propagatorFunc, int maxDegreeOfParallelism)

Parameters

propagatorFunc Func<TInput, TOutput>

The synchronous transformation function.

maxDegreeOfParallelism int

The maximum number of concurrent operations allowed.

Returns

IPropagatorBlock<TInput, TOutput>

A configured propagator block.

Type Parameters

TInput

The input item type.

TOutput

The transformed output item type.

CreateTransformManyBlock<TInput, TOutput>(Func<TInput, IEnumerable<TOutput>>, int)

Creates a synchronous one-to-many transformation propagator block (TransformManyBlock<TInput, TOutput>) with error handling.

IPropagatorBlock<TInput, TOutput> CreateTransformManyBlock<TInput, TOutput>(Func<TInput, IEnumerable<TOutput>> propagatorFunc, int maxDegreeOfParallelism)

Parameters

propagatorFunc Func<TInput, IEnumerable<TOutput>>

The transformation function returning a sequence of output items.

maxDegreeOfParallelism int

The maximum number of concurrent operations allowed.

Returns

IPropagatorBlock<TInput, TOutput>

A configured propagator block.

Type Parameters

TInput

The input item type.

TOutput

The individual output item type yielded by the sequence.