trait Step extends DataConsumer with ManifoldSpecification
An atomic pipeline step.
Steps must implement this interface. The step lifecycle is as follows:
1. The setConsumer
method will be called. The step must hold onto the consumer object.
Calling send
on this object is the step's one and only way to send output to the
next steps(s) in the pipeline.
2. The receive
method will be called for each input item that the step receives.
3. The run
method will be called after all inputs have been received.
4. If the step is in a loop, the reset
method will be called between iterations.
Steps are not required to wait until their run method is called before beginning execution. Note, however, that if a step has side effects (writing to disk, interacting with a web service, etc.) it is prudent to do so. A step may receive several inputs and then never run if some sibling step raised an exception that caused an entire container to fail.
- Alphabetic
- By Inheritance
- Step
- ManifoldSpecification
- DataConsumer
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Abstract Value Members
-
abstract
def
abort(): Unit
Abort processing.
Abort processing.
This method will be called if
run
will never be called because an exception has terminated execution of the container that contains this step.Note that
reset
will also called before processing restarts if this step is in a loop. -
abstract
def
bindingSpec: BindingSpecification
The names of the variable bindings this step requires.
The names of the variable bindings this step requires.
This method returns the names of the variables for which the step requires a binding.
- returns
The list of variable names.
-
abstract
def
consume(port: String, message: Message): Unit
Send output from a step.
Send output from a step.
Calling this method sends the specified
message
on the specifiedport
.- port
The output port.
- message
The message.
- Definition Classes
- DataConsumer
-
abstract
def
initialize(config: RuntimeConfiguration): Unit
One time, startup initialization.
One time, startup initialization.
The pipeline has been constructed and is going to run. This method is called once before execution begins.
- config
The runtime configuration used by this pipeline
-
abstract
def
inputSpec: PortSpecification
The names of the input ports this step requires.
The names of the input ports this step requires.
This method returns the names of the input ports that the step requires.
- returns
The list of required port names.
- Definition Classes
- ManifoldSpecification
-
abstract
def
location: Option[Location]
The location associated with this step.
The location associated with this step.
Many pipelines are constructed from an external, declarative description. In the event that constructing or running the pipeline results in an error, authors will be greatly relieved if the source of their error can be pinpointed exactly.
-
abstract
def
location_=(location: Location): Unit
Set the location associated with this step.
Set the location associated with this step.
Many pipelines are constructed from an external, declarative description. In the event that constructing or running the pipeline results in an error, authors will be greatly relieved if the source of their error can be pinpointed exactly.
- location
The location associated with this step.
-
abstract
def
outputSpec: PortSpecification
The names of the output ports this step requires.
The names of the output ports this step requires.
This method returns the names of the output ports that the step requires.
- returns
The list of required port names.
- Definition Classes
- ManifoldSpecification
-
abstract
def
receiveBinding(message: BindingMessage): Unit
Receive a binding.
Receive a binding.
Receive a variable binding from the pipeline.
- message
The binding message.
-
abstract
def
reset(): Unit
Reset to starting conditions.
Reset to starting conditions.
Inputs are about to begin arriving, you're going to be asked to run again, get yourself ready!
-
abstract
def
run(): Unit
Run!
Run!
All inputs have been recieved, so your deal.
-
abstract
def
setConsumer(consumer: DataConsumer): Unit
Set the consumer for sending output to the pipeline.
Set the consumer for sending output to the pipeline.
- consumer
The consumer.
-
abstract
def
stop(): Unit
Stop processing.
Stop processing.
This method will be called when all processing has finished and the pipeline is about to end.
Concrete Value Members
-
final
def
!=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
##(): Int
- Definition Classes
- AnyRef → Any
-
final
def
==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
def
clone(): AnyRef
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @native() @throws( ... )
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
finalize(): Unit
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] )
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
-
def
hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
def
toString(): String
- Definition Classes
- AnyRef → Any
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @throws( ... )
Inherited from ManifoldSpecification
Inherited from DataConsumer
Inherited from AnyRef
Inherited from Any
IOSpecs
These methods define the input and output contracts for a step: required inputs and their cardinalities, outputs and their cardinalities, and required bindings.
Just Another Fine Pipeline Language
This is a pipeline framework. It’s built on top of Akka actors to support arbitrary data flow pipelines. It is wholly agnostic to the kinds of data that flow through the pipelines and the implementations of the steps that process them.
See http://jafpl.com/ for more general information.