Contains factory methods to create dataflow actors and starting them.
Modifiers | Name | Description |
---|---|---|
static PGroup |
DATA_FLOW_GROUP |
The parallel group used by all Dataflow Concurrency actors by default. |
static java.lang.ThreadLocal<PGroup> |
activeParallelGroup |
Maps threads/tasks to parallel groups they belong to |
Constructor and description |
---|
Dataflow
() |
Type | Name and description |
---|---|
static Promise<T> |
lazyTask(groovy.lang.Closure<T> code) Creates a new task assigned to a thread from the default dataflow parallel group. |
static Promise<T> |
lazyTask(java.util.concurrent.Callable<T> callable) Creates a new task assigned to a thread from the current parallel group. |
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(SelectableChannel<?>... channels) Creates a select using the default dataflow parallel group. |
static Select<?> |
select(java.util.List<? extends SelectableChannel> 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<DataflowWriteChannel> outputChannels) Creates a splitter copying its single input channel into all of its output channels. |
static DataflowProcessor |
splitter(DataflowReadChannel inputChannel, java.util.List<DataflowWriteChannel> outputChannels, int maxForks) Creates a splitter copying its single input channel into all of its output channels. |
static Promise<T> |
task(groovy.lang.Closure<T> code) Creates a new task assigned to a thread from the default dataflow parallel group. |
static Promise<T> |
task(java.util.concurrent.Callable<T> callable) Creates a new task assigned to a thread from the current parallel group. |
static Promise<java.lang.Object> |
task(java.lang.Runnable runnable) Creates a new task assigned to a thread from the current parallel group. |
static java.lang.Object |
usingGroup(PGroup group, groovy.lang.Closure code) Sets the supplied PGroup as the default for the given block of code. |
static Promise<T> |
whenAllBound(java.util.List<Promise> promises, groovy.lang.Closure<T> code) Without blocking the thread waits for all the promises to get bound and then passes them to the supplied closure. |
static Promise<T> |
whenAllBound(Promise promise1, groovy.lang.Closure<T> code) Without blocking the thread waits for all the promises to get bound and then passes them to the supplied closure. |
static Promise<T> |
whenAllBound(Promise promise1, Promise promise2, groovy.lang.Closure<T> code) Without blocking the thread waits for all the promises to get bound and then passes them to the supplied closure. |
static Promise<T> |
whenAllBound(Promise promise1, Promise promise2, Promise promise3, groovy.lang.Closure<T> code) Without blocking the thread waits for all the promises to get bound and then passes them to the supplied closure. |
static Promise<T> |
whenAllBound(Promise promise1, Promise promise2, Promise promise3, Promise promise4, groovy.lang.Closure<T> code) Without blocking the thread waits for all the promises to get bound and then passes them to the supplied closure. |
static Promise<T> |
whenAllBound(java.util.List<Promise> promises, groovy.lang.Closure<T> code, groovy.lang.Closure<T> errorHandler) Without blocking the thread waits for all the promises to get bound and then passes them to the supplied closure. |
static Promise<T> |
whenAllBound(Promise promise1, groovy.lang.Closure<T> code, groovy.lang.Closure<T> errorHandler) Without blocking the thread waits for all the promises to get bound and then passes them to the supplied closure. |
static Promise<T> |
whenAllBound(Promise promise1, Promise promise2, groovy.lang.Closure<T> code, groovy.lang.Closure<T> errorHandler) Without blocking the thread waits for all the promises to get bound and then passes them to the supplied closure. |
static Promise<T> |
whenAllBound(Promise promise1, Promise promise2, Promise promise3, groovy.lang.Closure<T> code, groovy.lang.Closure<T> errorHandler) Without blocking the thread waits for all the promises to get bound and then passes them to the supplied closure. |
static Promise<T> |
whenAllBound(Promise promise1, Promise promise2, Promise promise3, Promise promise4, groovy.lang.Closure<T> code, groovy.lang.Closure<T> errorHandler) Without blocking the thread waits for all the promises to get bound and then passes them to the supplied closure. |
Methods inherited from class | Name |
---|---|
class java.lang.Object |
java.lang.Object#wait(), java.lang.Object#wait(long, int), java.lang.Object#wait(long), 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() |
The parallel group used by all Dataflow Concurrency actors by default.
Maps threads/tasks to parallel groups they belong to
Creates a new task assigned to a thread from the default dataflow parallel group. The task is lazy, since it only gets executed if the returned Promise instance is read or a then-callback is registered on it. 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.
code
- The task body to runCreates a new task assigned to a thread from the current parallel group. The task is lazy, since it only gets executed if the returned Promise instance is read or a then-callback is registered on it. 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.
callable
- The task body to runCreates an operator using the default dataflow parallel group
channels
- A map specifying "inputs" and "outputs" - dataflow channels (instances of the DataflowQueue or DataflowVariable classes) to use for inputs and outputscode
- The operator's body to run each time all inputs have a value to readCreates an operator using the current parallel group
inputChannels
- dataflow channels to use for inputoutputChannels
- dataflow channels to use for outputcode
- The operator's body to run each time all inputs have a value to readCreates an operator using the current parallel group
inputChannels
- dataflow channels to use for inputoutputChannels
- dataflow channels to use for outputmaxForks
- Number of parallel threads running operator's body, defaults to 1code
- The operator's body to run each time all inputs have a value to readCreates an operator using the current parallel group
input
- a dataflow channel to use for inputoutput
- a dataflow channel to use for outputcode
- The operator's body to run each time all inputs have a value to readCreates an operator using the current parallel group
input
- a dataflow channel to use for inputoutput
- a dataflow channel to use for outputmaxForks
- Number of parallel threads running operator's body, defaults to 1code
- The operator's body to run each time all inputs have a value to readCreates a prioritizing selector using the default dataflow parallel group Input with lower position index have higher priority.
channels
- A map specifying "inputs" and "outputs" - dataflow channels (instances of the DataflowQueue or DataflowVariable classes) to use for inputs and outputscode
- The selector's body to run each time a value is available in any of the inputs channelsCreates a prioritizing selector using the default dataflow parallel group Input with lower position index have higher priority.
inputChannels
- dataflow channels to use for inputoutputChannels
- dataflow channels to use for outputcode
- The selector's body to run each time a value is available in any of the inputs channelsCreates 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.
channels
- A map specifying "inputs" and "outputs" - dataflow channels (instances of the DataflowQueue or DataflowVariable classes) to use for inputs and outputsCreates 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.
inputChannels
- dataflow channels to use for inputoutputChannels
- dataflow channels to use for outputRetrieves the thread-local value of the active PGroup or the default DataflowGroup
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.
channels
- Dataflow variables or streams to wait for values onCreates 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.
channels
- Dataflow variables or streams to wait for values onCreates a selector using the default dataflow parallel group
channels
- A map specifying "inputs" and "outputs" - dataflow channels (instances of the DataflowQueue or DataflowVariable classes) to use for inputs and outputscode
- The selector's body to run each time a value is available in any of the inputs channelsCreates a selector using the default dataflow parallel group
inputChannels
- dataflow channels to use for inputoutputChannels
- dataflow channels to use for outputcode
- The selector's body to run each time a value is available in any of the inputs channelsCreates 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.
channels
- A map specifying "inputs" and "outputs" - dataflow channels (instances of the DataflowQueue or DataflowVariable classes) to use for inputs and outputsCreates 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.
inputChannels
- dataflow channels to use for inputoutputChannels
- dataflow channels to use for outputCreates 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.
inputChannel
- The channel to read values fromoutputChannels
- A list of channels to output toCreates 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.
inputChannel
- The channel to read values fromoutputChannels
- A list of channels to output tomaxForks
- Number of threads running the splitter's body, defaults to 1Creates 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.
code
- The task body to runCreates 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.
callable
- The task body to runCreates 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.
runnable
- The task body to runSets the supplied PGroup as the default for the given block of code. All dataflow functions, such as task or operator and callback handlers, will use the PGroup and its thread pool for their scheduling.
group
- The group to make the default inside the blockcode
- The code to run with overriden defaultWithout blocking the thread waits for all the promises to get bound and then passes them to the supplied closure.
promises
- The promises to wait forcode
- A closure to execute with concrete values for each of the supplied promises
- The type of the final resultWithout blocking the thread waits for all the promises to get bound and then passes them to the supplied closure.
promise1
- The promises to wait forcode
- A closure to execute with concrete values for each of the supplied promises
- The type of the final resultWithout blocking the thread waits for all the promises to get bound and then passes them to the supplied closure.
promise1
- The promises to wait forpromise2
- The promises to wait forcode
- A closure to execute with concrete values for each of the supplied promises
- The type of the final resultWithout blocking the thread waits for all the promises to get bound and then passes them to the supplied closure.
promise1
- The promises to wait forpromise2
- The promises to wait forpromise3
- The promises to wait forcode
- A closure to execute with concrete values for each of the supplied promises
- The type of the final resultWithout blocking the thread waits for all the promises to get bound and then passes them to the supplied closure.
promise1
- The promises to wait forpromise2
- The promises to wait forpromise3
- The promises to wait forpromise4
- The promises to wait forcode
- A closure to execute with concrete values for each of the supplied promises
- The type of the final resultWithout blocking the thread waits for all the promises to get bound and then passes them to the supplied closure.
promises
- The promises to wait forcode
- A closure to execute with concrete values for each of the supplied promiseserrorHandler
- A closure handling an exception (an instance of Throwable), if it gets bound
- The type of the final resultWithout blocking the thread waits for all the promises to get bound and then passes them to the supplied closure.
promise1
- The promises to wait forcode
- A closure to execute with concrete values for each of the supplied promiseserrorHandler
- A closure handling an exception (an instance of Throwable), if it gets bound
- The type of the final resultWithout blocking the thread waits for all the promises to get bound and then passes them to the supplied closure.
promise1
- The promises to wait forpromise2
- The promises to wait forcode
- A closure to execute with concrete values for each of the supplied promiseserrorHandler
- A closure handling an exception (an instance of Throwable), if it gets bound
- The type of the final resultWithout blocking the thread waits for all the promises to get bound and then passes them to the supplied closure.
promise1
- The promises to wait forpromise2
- The promises to wait forpromise3
- The promises to wait forcode
- A closure to execute with concrete values for each of the supplied promiseserrorHandler
- A closure handling an exception (an instance of Throwable), if it gets bound
- The type of the final resultWithout blocking the thread waits for all the promises to get bound and then passes them to the supplied closure.
promise1
- The promises to wait forpromise2
- The promises to wait forpromise3
- The promises to wait forpromise4
- The promises to wait forcode
- A closure to execute with concrete values for each of the supplied promiseserrorHandler
- A closure handling an exception (an instance of Throwable), if it gets bound
- The type of the final resultCopyright © 2008–2014 Václav Pech. All Rights Reserved.