org.codehaus.gpars

groovyx.gpars.dataflow.operator
[Java] Class DataflowSelector

java.lang.Object
  groovyx.gpars.dataflow.operator.DataflowProcessor
      groovyx.gpars.dataflow.operator.DataflowSelector

@java.lang.SuppressWarningspublic DataflowSelector(final PGroup group, final Map channels, final Closure code) {
public class DataflowSelector
extends DataflowProcessor

Dataflow selectors and operators (processors) form the basic units in dataflow networks. They are typically combined into oriented graphs that transform data. They accept a set of input and output dataflow channels so that once values are available to be consumed in any of the input channels the selector's body is triggered on the values, potentially generating values to be written into the output channels. The output channels at the same time are suitable to be used as input channels by some other dataflow processors. The channels allow processors to communicate.

Dataflow selectors and operators enable creation of highly concurrent applications yet the abstraction hides the low-level concurrency primitives and exposes much friendlier API. Since selectors and operators internally leverage the actor implementation, they reuse a pool of threads and so the actual number of threads used by the calculation can be kept much lower than the actual number of processors used in the network.

Selectors select a random value from the values available in the input channels. Optionally the selector's guards mask can be altered to limit the number of channels considered for selection.

Authors:
Vaclav Pech Date: Sep 9, 2009


Field Summary
protected java.util.List guards

protected Select select

 
Fields inherited from class DataflowProcessor
INPUTS, LISTENERS, MAX_FORKS, OUTPUTS, STATE_OBJECT, actor, listeners, stateObject
 
Constructor Summary
DataflowSelector(PGroup group, java.util.Map channels, groovy.lang.Closure code)

 
Method Summary
boolean allGuardsClosed()

private static java.lang.String countInputChannels(java.util.Map channels)

protected void doSelect()

Indicates, whether the selector has some guards enabled and so can select a value from the input channels

void setGuard(int index, boolean flag)

void setGuards(java.util.List flags)

private static boolean verifyChannelParameters(java.util.Map channels, int parameters)

 
Methods inherited from class DataflowProcessor
addDataflowEventListener, bindAllOutputValues, bindAllOutputValuesAtomically, bindAllOutputs, bindAllOutputsAtomically, bindOutput, bindOutput, checkMaxForks, extractInputs, extractListeners, extractOutputs, extractState, fireAfterRun, fireAfterStart, fireAfterStop, fireBeforeRun, fireControlMessageArrived, fireCustomEvent, fireMessageArrived, fireMessageSentOut, fireOnException, getOutput, getOutputs, getOutputs, getStateObject, join, registerChannelListenersToAllInputs, removeDataflowEventListener, reportError, shouldBeMultiThreaded, start, start, terminate, terminateAfterNextRun
 

Field Detail

guards

protected final java.util.List guards


select

protected final Select select


 
Constructor Detail

DataflowSelector

@java.lang.SuppressWarningsselect = new Select(group, inputs);
public DataflowSelector(PGroup group, java.util.Map channels, groovy.lang.Closure code)


 
Method Detail

allGuardsClosed

final boolean allGuardsClosed()


countInputChannels

private static java.lang.String countInputChannels(java.util.Map channels)


doSelect

protected void doSelect()
Indicates, whether the selector has some guards enabled and so can select a value from the input channels
Returns:
True, if at least input channel guard is enabled


setGuard

public final void setGuard(int index, boolean flag)


setGuards

public final void setGuards(java.util.List flags)


verifyChannelParameters

private static boolean verifyChannelParameters(java.util.Map channels, int parameters)


 

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