Class DataFlowExecutableSource<TOutput>

Base implementation for a source that can be executed.

Inherited Members
object.Equals(object)
object.Equals(object, object)
object.GetHashCode()
object.GetType()
object.MemberwiseClone()
object.ReferenceEquals(object, object)
object.ToString()
Namespace: ETLBox.DataFlow
Assembly: ETLBox.dll
Syntax
    public abstract class DataFlowExecutableSource<TOutput> : DataFlowSource<TOutput>, ILoggableTask, IDataFlowLogging, IDataFlowExecutableSource<TOutput>, IDataFlowSource<TOutput>, IDataFlowSource, IDataFlowComponent, IDataFlowExecutableSource
Type Parameters
NameDescription
TOutput

Fields

SourceTask

Declaration
    protected Task SourceTask
Field Value
TypeDescription
System.Threading.Tasks.Task

Properties

Buffer

Declaration
    protected BufferBlock<TOutput> Buffer { get; set; }
Property Value
TypeDescription
System.Threading.Tasks.Dataflow.BufferBlock<T><TOutput>

CompleteManually

Declaration
    protected virtual bool CompleteManually { get; set; }
Property Value
TypeDescription
bool

Limit

Reads data from the source until the limit is reached. Default is 0 (=no limit).

Declaration
    public int Limit { get; set; }
Property Value
TypeDescription
int

ProgressCountIsExceedingLimit

Declaration
    protected bool ProgressCountIsExceedingLimit { get; }
Property Value
TypeDescription
bool

ProgressCountIsInLimit

Declaration
    protected bool ProgressCountIsInLimit { get; }
Property Value
TypeDescription
bool

SourceBlock

SourceBlock from the underlying TPL.Dataflow which is used as output buffer for the component.

Declaration
    public override ISourceBlock<TOutput> SourceBlock { get; }
Property Value
TypeDescription
System.Threading.Tasks.Dataflow.ISourceBlock<TOutput><TOutput>
Overrides
ETLBox.DataFlow.DataFlowSource<TOutput>.SourceBlock

Methods

Execute()

Starts the data flow for all connected components (also for other sources in the network). Waits until all destinations run to completion.

Declaration
    public void Execute()

Execute(CancellationToken)

Declaration
    public void Execute(CancellationToken cancellationToken)
Parameters
TypeNameDescription
System.Threading.CancellationTokencancellationToken

A cancellation token which can be used to cancel the task of component (and all subsequent components in the flow)

ExecuteAsync()

Starts the data flow asynchronously.

Declaration
    public Task ExecuteAsync()
Returns
TypeDescription
System.Threading.Tasks.Task

Returns an awaitable task that completes or faults when the flow ran to completion.

ExecuteAsync(CancellationToken)

Starts the data flow asynchronously.

Declaration
    public Task ExecuteAsync(CancellationToken cancellationToken)
Parameters
TypeNameDescription
System.Threading.CancellationTokencancellationToken

A cancellation token which can be used to cancel the task of component (and all subsequent components in the flow)

Returns
TypeDescription
System.Threading.Tasks.Task

Returns an awaitable task that completes or faults when the flow ran to completion.

InitComponent()

Declaration
    protected override void InitComponent()
Overrides

InternalPost(CancellationToken?)

Declaration
    public void InternalPost(CancellationToken? cancellationToken = null)
Parameters
TypeNameDescription
System.Threading.CancellationToken?cancellationToken

OnExecutionDoAsyncWork()

Declaration
    protected abstract void OnExecutionDoAsyncWork()

OnExecutionDoSynchronousWork()

Declaration
    protected abstract void OnExecutionDoSynchronousWork()

Post()

Starts the data flow partly synchronously. This method will return when all data was posted into the flow.

Declaration
    public void Post()

Post(CancellationToken)

Declaration
    public void Post(CancellationToken cancellationToken)
Parameters
TypeNameDescription
System.Threading.CancellationTokencancellationToken

A cancellation token which can be used to cancel the task of component (and all subsequent components in the flow)

Implements