Class PortPassThroughTarget<TInputOutput>
A dataflow worker that passes rows from the Input
port on this worker, to an output port
on a downstream worker (normally residing under a different parent compared to this worker).
This is mainly used when encapsulating a child dataflow worker with an output port (i.e. a
source or transform) inside a parent dataflow worker, and passing the child output rows
to the parent output port. This allows using dataflow (and other) workers as
building blocks when creating new dataflow workers.
The parent worker can have any number of input and output ports, as well as any number of child workers,
and would add a PortPassThroughSource<TOutput> for each port to pass from parent to
child worker, and a PortPassThroughTarget
for each port to pass from child to parent worker.
Use both PortPassThroughSource
and PortPassThroughTarget
to create a parent transform.
Note that the parent must await the completion of the PortPassThroughTarget
worker before it
itself completes, otherwise the parent output port will not have completed and will raise an exception.
Please also see the Compose Source with Pass-through example.
Implements
Inherited Members
Namespace: actionETL
Assembly: actionETL.dll
Syntax
public class PortPassThroughTarget<TInputOutput> : WorkerBase<PortPassThroughTarget<TInputOutput>>, IDisposeOnFinished where TInputOutput : class
Type Parameters
Name | Description |
---|---|
TInputOutput | The type of the input and output rows. |
Properties
Input
Gets the input port for receiving rows from an upstream worker.
Declaration
public InputPort<TInputOutput> Input { get; }
Property Value
Type | Description |
---|---|
InputPort<TInputOutput> |
PassThroughOutput
Gets or sets the output port to send rows to.
Declaration
public OutputPort<TInputOutput> PassThroughOutput { get; set; }
Property Value
Type | Description |
---|---|
OutputPort<TInputOutput> | The pass-through output port. |
Methods
RunAsync()
This method can be overridden to add custom functionality to the derived worker that runs before
and after the main processing. In this case, the base class base.RunAsync()
must
be called for the worker to function correctly.
Typically, this worker is used without overriding this method.
Declaration
protected override async Task<OutcomeStatus> RunAsync()
Returns
Type | Description |
---|---|
Task<OutcomeStatus> | A |