org.codehaus.gpars

groovyx.gpars.dataflow
[Java] Class Dataflow

java.lang.Object
  groovyx.gpars.dataflow.Dataflow

@SuppressWarnings({"rawtypes", "RawUseOfParameterizedType", "AbstractClassWithoutAbstractMethods", "AbstractClassNeverImplemented", "ConstantDeclaredInAbstractClass", "UtilityClass", "unchecked"})
public abstract class Dataflow
extends java.lang.Object

Contains factory methods to create dataflow actors and starting them.

Authors:
Vaclav Pech, Dierk Koenig Date: Jun 4, 2009


Field Summary
static PGroup DATA_FLOW_GROUP

The parallel group used by all Dataflow Concurrency actors by default.

static java.lang.ThreadLocal activeParallelGroup

Maps threads/tasks to parallel groups they belong to

 
Constructor Summary
Dataflow()

 
Method Summary
static DataflowProcessor operator(java.util.Map channels, groovy.lang.Closure code)

Creates an operator using the default dataflow parallel group

static DataflowProcessor operator(java.util.List inputChannels, java.util.List outputChannels, groovy.lang.Closure code)

Creates an operator using the current parallel group

static DataflowProcessor operator(java.util.List inputChannels, java.util.List outputChannels, int maxForks, groovy.lang.Closure code)

Creates an operator using the current parallel group

static DataflowProcessor operator(DataflowReadChannel input, DataflowWriteChannel output, groovy.lang.Closure code)

Creates an operator using the current parallel group

static DataflowProcessor operator(DataflowReadChannel input, DataflowWriteChannel output, int maxForks, groovy.lang.Closure code)

Creates an operator using the current parallel group

static DataflowProcessor prioritySelector(java.util.Map channels, groovy.lang.Closure code)

Creates a prioritizing selector using the default dataflow parallel group Input with lower position index have higher priority.

static DataflowProcessor prioritySelector(java.util.List inputChannels, java.util.List outputChannels, groovy.lang.Closure code)

Creates a prioritizing selector using the default dataflow parallel group Input with lower position index have higher priority.

static DataflowProcessor prioritySelector(java.util.Map channels)

Creates a prioritizing selector using the default dataflow parallel group.

static DataflowProcessor prioritySelector(java.util.List inputChannels, java.util.List outputChannels)

Creates a prioritizing selector using the default dataflow parallel group.

static PGroup retrieveCurrentDFPGroup()

Retrieves the thread-local value of the active PGroup or the default DataflowGroup

static Select select(DataflowReadChannel channels)

Creates a select using the default dataflow parallel group.

static Select select(java.util.List channels)

Creates a select using the default dataflow parallel group.

static DataflowProcessor selector(java.util.Map channels, groovy.lang.Closure code)

Creates a selector using the default dataflow parallel group

static DataflowProcessor selector(java.util.List inputChannels, java.util.List outputChannels, groovy.lang.Closure code)

Creates a selector using the default dataflow parallel group

static DataflowProcessor selector(java.util.Map channels)

Creates a selector using the default dataflow parallel group.

static DataflowProcessor selector(java.util.List inputChannels, java.util.List outputChannels)

Creates a selector using the default dataflow parallel group.

static DataflowProcessor splitter(DataflowReadChannel inputChannel, java.util.List outputChannels)

Creates a splitter copying its single input channel into all of its output channels.

static DataflowProcessor splitter(DataflowReadChannel inputChannel, java.util.List outputChannels, int maxForks)

Creates a splitter copying its single input channel into all of its output channels.

static DataflowVariable task(groovy.lang.Closure code)

Creates a new task assigned to a thread from the default dataflow parallel group.

static DataflowVariable task(java.util.concurrent.Callable callable)

Creates a new task assigned to a thread from the current parallel group.

static DataflowVariable task(java.lang.Runnable runnable)

Creates a new task assigned to a thread from the current parallel group.

 
Methods inherited from class java.lang.Object
java.lang.Object#wait(long), java.lang.Object#wait(), java.lang.Object#wait(long, int), java.lang.Object#equals(java.lang.Object), java.lang.Object#toString(), java.lang.Object#hashCode(), java.lang.Object#getClass(), java.lang.Object#notify(), java.lang.Object#notifyAll()
 

Field Detail

DATA_FLOW_GROUP

public static final PGroup DATA_FLOW_GROUP
The parallel group used by all Dataflow Concurrency actors by default.


activeParallelGroup

public static final java.lang.ThreadLocal activeParallelGroup
Maps threads/tasks to parallel groups they belong to


 
Constructor Detail

Dataflow

Dataflow()


 
Method Detail

operator

public static DataflowProcessor operator(java.util.Map channels, groovy.lang.Closure code)
Creates an operator using the default dataflow parallel group
Parameters:
channels - A map specifying "inputs" and "outputs" - dataflow channels (instances of the DataflowQueue or DataflowVariable classes) to use for inputs and outputs
code - The operator's body to run each time all inputs have a value to read
Returns:
A new active operator instance


operator

public static DataflowProcessor operator(java.util.List inputChannels, java.util.List outputChannels, groovy.lang.Closure code)
Creates an operator using the current parallel group
Parameters:
inputChannels - dataflow channels to use for input
outputChannels - dataflow channels to use for output
code - The operator's body to run each time all inputs have a value to read
Returns:
A new active operator instance


operator

public static DataflowProcessor operator(java.util.List inputChannels, java.util.List outputChannels, int maxForks, groovy.lang.Closure code)
Creates an operator using the current parallel group
Parameters:
inputChannels - dataflow channels to use for input
outputChannels - dataflow channels to use for output
maxForks - Number of parallel threads running operator's body, defaults to 1
code - The operator's body to run each time all inputs have a value to read
Returns:
A new active operator instance


operator

public static DataflowProcessor operator(DataflowReadChannel input, DataflowWriteChannel output, groovy.lang.Closure code)
Creates an operator using the current parallel group
Parameters:
input - a dataflow channel to use for input
output - a dataflow channel to use for output
code - The operator's body to run each time all inputs have a value to read
Returns:
A new active operator instance


operator

public static DataflowProcessor operator(DataflowReadChannel input, DataflowWriteChannel output, int maxForks, groovy.lang.Closure code)
Creates an operator using the current parallel group
Parameters:
input - a dataflow channel to use for input
output - a dataflow channel to use for output
maxForks - Number of parallel threads running operator's body, defaults to 1
code - The operator's body to run each time all inputs have a value to read
Returns:
A new active operator instance


prioritySelector

public static DataflowProcessor prioritySelector(java.util.Map channels, groovy.lang.Closure code)
Creates a prioritizing selector using the default dataflow parallel group Input with lower position index have higher priority.
Parameters:
channels - A map specifying "inputs" and "outputs" - dataflow channels (instances of the DataflowQueue or DataflowVariable classes) to use for inputs and outputs
code - The selector's body to run each time a value is available in any of the inputs channels
Returns:
A new active selector instance


prioritySelector

public static DataflowProcessor prioritySelector(java.util.List inputChannels, java.util.List outputChannels, groovy.lang.Closure code)
Creates a prioritizing selector using the default dataflow parallel group Input with lower position index have higher priority.
Parameters:
inputChannels - dataflow channels to use for input
outputChannels - dataflow channels to use for output
code - The selector's body to run each time a value is available in any of the inputs channels
Returns:
A new active selector instance


prioritySelector

public static DataflowProcessor prioritySelector(java.util.Map channels)
Creates a prioritizing selector using the default dataflow parallel group. Since no body is provided, the selector will simply copy the incoming values to all output channels. Input with lower position index have higher priority.
Parameters:
channels - A map specifying "inputs" and "outputs" - dataflow channels (instances of the DataflowQueue or DataflowVariable classes) to use for inputs and outputs
Returns:
A new active selector instance


prioritySelector

public static DataflowProcessor prioritySelector(java.util.List inputChannels, java.util.List outputChannels)
Creates a prioritizing selector using the default dataflow parallel group. Since no body is provided, the selector will simply copy the incoming values to all output channels. Input with lower position index have higher priority.
Parameters:
inputChannels - dataflow channels to use for input
outputChannels - dataflow channels to use for output
Returns:
A new active selector instance


retrieveCurrentDFPGroup

public static PGroup retrieveCurrentDFPGroup()
Retrieves the thread-local value of the active PGroup or the default DataflowGroup
Returns:
The PGroup to use for DF within the current thread


select

public static Select select(DataflowReadChannel channels)
Creates a select using the default dataflow parallel group. The returns Select instance will allow the user to obtain values from the supplied dataflow variables or streams as they become available.
Parameters:
channels - Dataflow variables or streams to wait for values on
Returns:
A new select instance


select

public static Select select(java.util.List channels)
Creates a select using the default dataflow parallel group. The returns Select instance will allow the user to obtain values from the supplied dataflow variables or streams as they become available.
Parameters:
channels - Dataflow variables or streams to wait for values on
Returns:
A new select instance


selector

public static DataflowProcessor selector(java.util.Map channels, groovy.lang.Closure code)
Creates a selector using the default dataflow parallel group
Parameters:
channels - A map specifying "inputs" and "outputs" - dataflow channels (instances of the DataflowQueue or DataflowVariable classes) to use for inputs and outputs
code - The selector's body to run each time a value is available in any of the inputs channels
Returns:
A new active selector instance


selector

public static DataflowProcessor selector(java.util.List inputChannels, java.util.List outputChannels, groovy.lang.Closure code)
Creates a selector using the default dataflow parallel group
Parameters:
inputChannels - dataflow channels to use for input
outputChannels - dataflow channels to use for output
code - The selector's body to run each time a value is available in any of the inputs channels
Returns:
A new active selector instance


selector

public static DataflowProcessor selector(java.util.Map channels)
Creates a selector using the default dataflow parallel group. Since no body is provided, the selector will simply copy the incoming values to all output channels.
Parameters:
channels - A map specifying "inputs" and "outputs" - dataflow channels (instances of the DataflowQueue or DataflowVariable classes) to use for inputs and outputs
Returns:
A new active selector instance


selector

public static DataflowProcessor selector(java.util.List inputChannels, java.util.List outputChannels)
Creates a selector using the default dataflow parallel group. Since no body is provided, the selector will simply copy the incoming values to all output channels.
Parameters:
inputChannels - dataflow channels to use for input
outputChannels - dataflow channels to use for output
Returns:
A new active selector instance


splitter

public static DataflowProcessor splitter(DataflowReadChannel inputChannel, java.util.List outputChannels)
Creates a splitter copying its single input channel into all of its output channels. The created splitter will be part of the default parallel group Input with lower position index have higher priority.
Parameters:
inputChannel - The channel to read values from
outputChannels - A list of channels to output to
Returns:
A new active splitter instance


splitter

public static DataflowProcessor splitter(DataflowReadChannel inputChannel, java.util.List outputChannels, int maxForks)
Creates a splitter copying its single input channel into all of its output channels. The created splitter will be part of this parallel group Input with lower position index have higher priority.
Parameters:
inputChannel - The channel to read values from
outputChannels - A list of channels to output to
maxForks - Number of threads running the splitter's body, defaults to 1
Returns:
A new active splitter instance


task

public static DataflowVariable task(groovy.lang.Closure code)
Creates a new task assigned to a thread from the default dataflow parallel group. Tasks are a lightweight version of dataflow operators, which do not define their communication channels explicitly, but can only exchange data using explicit DataflowVariables and Streams.
Parameters:
code - The task body to run
Returns:
A DataflowVariable, which gets assigned the value returned from the supplied code


task

public static DataflowVariable task(java.util.concurrent.Callable callable)
Creates a new task assigned to a thread from the current parallel group. Tasks are a lightweight version of dataflow operators, which do not define their communication channels explicitly, but can only exchange data using explicit DataflowVariables and Streams. Registers itself with Dataflow for nested 'whenBound' handlers to use the same group.
Parameters:
callable - The task body to run
Returns:
A DataflowVariable, which gets assigned the value returned from the supplied code


task

public static DataflowVariable task(java.lang.Runnable runnable)
Creates a new task assigned to a thread from the current parallel group. Tasks are a lightweight version of dataflow operators, which do not define their communication channels explicitly, but can only exchange data using explicit DataflowVariables and Streams. Registers itself with Dataflow for nested 'whenBound' handlers to use the same group.
Parameters:
runnable - The task body to run
Returns:
A DataflowVariable, which gets bound to null once the supplied code finishes


 

Copyright © 2008–2010 Václav Pech. All Rights Reserved.