Class PortPassThroughSource<TOutput>
A dataflow worker that passes rows from an upstream input port belonging to a different worker
(normally residing under a different parent), to the Output
port on this worker.
This is mainly used when encapsulating a child dataflow worker with an input port
(i.e. a transform or target) inside a parent dataflow worker, and passing the parent
input port rows to the child input 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
for each port to pass from parent to a child worker, and a
PortPassThroughTarget<TInputOutput> for each port to pass from a child worker to the parent.
Use both PortPassThroughSource
and PortPassThroughTarget
to create a parent transform.
Note that the parent must await the completion of the PortPassThroughSource
worker before it itself completes,
otherwise the parent input port will not be completely emptied and will raise an exception.
Please also see the Compose Target with Pass-through example.
Implements
Inherited Members
Namespace: actionETL
Assembly: actionETL.dll
Syntax
public class PortPassThroughSource<TOutput> : WorkerBase<PortPassThroughSource<TOutput>>, IDisposeOnFinished where TOutput : class
Type Parameters
Name | Description |
---|---|
TOutput | The type of each row. |
Constructors
PortPassThroughSource(WorkerParent, String, InputPort<TOutput>)
Initializes a new instance of the PortPassThroughSource<TOutput>
dataflow worker that pass rows from an upstream input port belonging to a different worker,
to the Output
port on this worker. This is mainly used when encapsulating a child dataflow worker
with an input port (i.e. a transform or target) inside a parent dataflow worker, and passing the parent
input port rows to the child input port.
Declaration
public PortPassThroughSource(WorkerParent parentWorker, string workerName, InputPort<TOutput> inputPort)
Parameters
Type | Name | Description |
---|---|---|
WorkerParent | parentWorker | The parent worker. Cannot be |
String | workerName | Name of the worker.
Set to a prefix plus a trailing
While less useful, set to
The name cannot otherwise contain |
InputPort<TOutput> | inputPort | The upstream (non-sibling worker) input port to take rows from. |
Exceptions
Type | Condition |
---|---|
ArgumentException |
|
ArgumentNullException |
|
InvalidOperationException |
|
Properties
Output
Gets the output port for sending rows to downstream workers.
Declaration
public OutputPort<TOutput> Output { get; }
Property Value
Type | Description |
---|---|
OutputPort<TOutput> |
PassThroughInput
Gets or sets the input port belonging to a different worker, from which to take and pass-through rows.
Declaration
public InputPort<TOutput> PassThroughInput { get; set; }
Property Value
Type | Description |
---|---|
InputPort<TOutput> | The pass-through input 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 |