|
org.codehaus.gpars | |||||||
FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectgroovyx.gpars.serial.WithSerialId
groovyx.gpars.dataflow.expression.DataflowExpression
/** public abstract class DataflowExpression extends WithSerialId
The base class for all dataflow elements.
Nested Class Summary | |
---|---|
static class |
DataflowExpression.BindDataflow
|
class |
DataflowExpression.DataflowExpressionsCollector
|
private static class |
DataflowExpression.TransformMany
|
private static class |
DataflowExpression.TransformOne
|
private static class |
DataflowExpression.WaitingThread
|
Field Summary | |
---|---|
private static java.lang.String |
ATTACHMENT
|
private static java.lang.String |
A_DATAFLOW_VARIABLE_CAN_ONLY_BE_ASSIGNED_ONCE_ONLY_RE_ASSIGNMENTS_TO_AN_EQUAL_VALUE_ARE_ALLOWED
|
private static java.lang.String |
CANNOT_FIRE_BIND_ERRORS_THE_THREAD_HAS_BEEN_INTERRUPTED
|
private static java.lang.String |
RESULT
|
protected static int |
S_INITIALIZED
|
protected static int |
S_INITIALIZING
|
protected static int |
S_NOT_INITIALIZED
|
private static DataflowExpression.WaitingThread |
dummyWaitingThread
Check if value has been set already for this expression |
protected java.lang.Throwable |
error
|
private DataflowChannelEventOrchestrator |
eventManager
|
private groovy.lang.MetaClass |
metaClass
|
private static long |
serialVersionUID
|
protected java.util.concurrent.atomic.AtomicInteger |
state
|
protected java.lang.Object |
value
Possible states |
private java.util.concurrent.atomic.AtomicReference |
waiting
|
Fields inherited from class WithSerialId | |
---|---|
serialHandle, serialVersionUID |
Constructor Summary | |
DataflowExpression()
|
Method Summary | |
---|---|
protected java.lang.Object
|
DataflowExpression()
|
void
|
binaryChoice(DataflowWriteChannel trueBranch, DataflowWriteChannel falseBranch, groovy.lang.Closure code)
|
void
|
binaryChoice(Pool pool, DataflowWriteChannel trueBranch, DataflowWriteChannel falseBranch, groovy.lang.Closure code)
|
void
|
binaryChoice(PGroup group, DataflowWriteChannel trueBranch, DataflowWriteChannel falseBranch, groovy.lang.Closure code)
|
void
|
binaryChoice(java.util.Map params, DataflowWriteChannel trueBranch, DataflowWriteChannel falseBranch, groovy.lang.Closure code)
|
void
|
binaryChoice(Pool pool, java.util.Map params, DataflowWriteChannel trueBranch, DataflowWriteChannel falseBranch, groovy.lang.Closure code)
|
void
|
binaryChoice(PGroup group, java.util.Map params, DataflowWriteChannel trueBranch, DataflowWriteChannel falseBranch, groovy.lang.Closure code)
|
void
|
bind(java.lang.Object value)
|
void
|
bindError(java.lang.Throwable e)
|
void
|
bindSafely(java.lang.Object value)
Assigns a value to the variable. |
void
|
bindUnique(java.lang.Object value)
Performs the actual bind operation, unblocks all blocked threads and informs all asynchronously waiting actors. |
DataflowReadChannel
|
chainWith(groovy.lang.Closure closure)
|
DataflowReadChannel
|
chainWith(Pool pool, groovy.lang.Closure closure)
|
DataflowReadChannel
|
chainWith(PGroup group, groovy.lang.Closure closure)
|
DataflowReadChannel
|
chainWith(java.util.Map params, groovy.lang.Closure closure)
|
DataflowReadChannel
|
chainWith(Pool pool, java.util.Map params, groovy.lang.Closure closure)
|
DataflowReadChannel
|
chainWith(PGroup group, java.util.Map params, groovy.lang.Closure closure)
|
void
|
choice(java.util.List outputs, groovy.lang.Closure code)
|
void
|
choice(Pool pool, java.util.List outputs, groovy.lang.Closure code)
|
void
|
choice(PGroup group, java.util.List outputs, groovy.lang.Closure code)
|
void
|
choice(java.util.Map params, java.util.List outputs, groovy.lang.Closure code)
|
void
|
choice(Pool pool, java.util.Map params, java.util.List outputs, groovy.lang.Closure code)
|
void
|
choice(PGroup group, java.util.Map params, java.util.List outputs, groovy.lang.Closure code)
|
private DataflowChannelEventOrchestrator
|
createEventManager()
|
private void
|
doBind(java.lang.Object value)
|
protected void
|
doBindImpl(java.lang.Object value)
|
void
|
doBindRemote(java.util.UUID hostId, java.lang.Object message)
Binds the value after receiving a bing message over the wire |
protected java.lang.Object
|
evaluate()
Returns either standard property of the expression or creates an expression, which will request given property when the receiver becomes available |
DataflowReadChannel
|
filter(groovy.lang.Closure closure)
|
DataflowReadChannel
|
filter(Pool pool, groovy.lang.Closure closure)
|
DataflowReadChannel
|
filter(PGroup group, groovy.lang.Closure closure)
|
DataflowReadChannel
|
filter(java.util.Map params, groovy.lang.Closure closure)
|
DataflowReadChannel
|
filter(Pool pool, java.util.Map params, groovy.lang.Closure closure)
|
DataflowReadChannel
|
filter(PGroup group, java.util.Map params, groovy.lang.Closure closure)
|
private void
|
fireBindError(java.lang.Object value, boolean unique)
|
private void
|
fireBindError(java.lang.Throwable e)
|
private void
|
fireOnMessage(java.lang.Object value)
|
BindErrorListenerManager
|
getBindErrorManager()
|
DataflowChannelEventListenerManager
|
getEventManager()
|
groovy.lang.MetaClass
|
getMetaClass()
|
java.lang.Object
|
getProperty(java.lang.String propertyName)
Listener for availability of data flow expressions we depend on. |
java.lang.Object
|
getVal()
|
java.lang.Object
|
getVal(long timeout, java.util.concurrent.TimeUnit units)
Reads the value of the variable. |
void
|
getValAsync(MessageStream callback)
|
void
|
getValAsync(java.lang.Object attachment, MessageStream callback)
|
private static void
|
handleInterruption(java.util.concurrent.atomic.AtomicBoolean newWaiting)
|
void
|
into(DataflowWriteChannel target)
|
void
|
into(Pool pool, DataflowWriteChannel target)
|
void
|
into(PGroup group, DataflowWriteChannel target)
|
void
|
into(java.util.Map params, DataflowWriteChannel target)
|
void
|
into(Pool pool, java.util.Map params, DataflowWriteChannel target)
|
void
|
into(PGroup group, java.util.Map params, DataflowWriteChannel target)
|
java.lang.Object
|
invokeMethod(java.lang.String name, java.lang.Object args)
|
boolean
|
isBound()
|
void
|
join()
Blocks, if the value has not been assigned yet to the DataflowVariable |
void
|
join(long timeout, java.util.concurrent.TimeUnit units)
|
int
|
length()
|
DataflowReadChannel
|
merge(DataflowReadChannel other, groovy.lang.Closure closure)
|
DataflowReadChannel
|
merge(Pool pool, DataflowReadChannel other, groovy.lang.Closure closure)
|
DataflowReadChannel
|
merge(PGroup group, DataflowReadChannel other, groovy.lang.Closure closure)
|
DataflowReadChannel
|
merge(java.util.List others, groovy.lang.Closure closure)
|
DataflowReadChannel
|
merge(Pool pool, java.util.List others, groovy.lang.Closure closure)
|
DataflowReadChannel
|
merge(PGroup group, java.util.List others, groovy.lang.Closure closure)
|
DataflowReadChannel
|
merge(java.util.Map params, DataflowReadChannel other, groovy.lang.Closure closure)
|
DataflowReadChannel
|
merge(Pool pool, java.util.Map params, DataflowReadChannel other, groovy.lang.Closure closure)
|
DataflowReadChannel
|
merge(PGroup group, java.util.Map params, DataflowReadChannel other, groovy.lang.Closure closure)
|
DataflowReadChannel
|
merge(java.util.Map params, java.util.List others, groovy.lang.Closure closure)
|
DataflowReadChannel
|
merge(Pool pool, java.util.Map params, java.util.List others, groovy.lang.Closure closure)
|
DataflowReadChannel
|
merge(PGroup group, java.util.Map params, java.util.List others, groovy.lang.Closure closure)
|
private void
|
notifyRemote(java.util.UUID hostId)
|
DataflowReadChannel
|
or(groovy.lang.Closure closure)
|
void
|
or(DataflowWriteChannel target)
|
DataflowExpression
|
poll()
Retrieves the bound value. |
Promise
|
rightShift(groovy.lang.Closure closure)
Schedule closure to be executed by pooled actor after data becomes available. |
protected void
|
scheduleCallback(java.lang.Object attachment, MessageStream callback)
Sends the result back to the actor, which is waiting asynchronously for the value to be bound. |
void
|
separate(java.util.List outputs, groovy.lang.Closure code)
|
void
|
separate(Pool pool, java.util.List outputs, groovy.lang.Closure code)
|
void
|
separate(PGroup group, java.util.List outputs, groovy.lang.Closure code)
|
void
|
separate(java.util.Map params, java.util.List outputs, groovy.lang.Closure code)
|
void
|
separate(Pool pool, java.util.Map params, java.util.List outputs, groovy.lang.Closure code)
|
void
|
separate(PGroup group, java.util.Map params, java.util.List outputs, groovy.lang.Closure code)
|
void
|
setMetaClass(groovy.lang.MetaClass metaClass)
|
void
|
setProperty(java.lang.String propertyName, java.lang.Object newValue)
|
void
|
split(DataflowWriteChannel target1, DataflowWriteChannel target2)
|
void
|
split(Pool pool, DataflowWriteChannel target1, DataflowWriteChannel target2)
|
void
|
split(PGroup group, DataflowWriteChannel target1, DataflowWriteChannel target2)
|
void
|
split(java.util.List targets)
|
void
|
split(Pool pool, java.util.List targets)
|
void
|
split(PGroup group, java.util.List targets)
|
void
|
split(java.util.Map params, DataflowWriteChannel target1, DataflowWriteChannel target2)
|
void
|
split(Pool pool, java.util.Map params, DataflowWriteChannel target1, DataflowWriteChannel target2)
|
void
|
split(PGroup group, java.util.Map params, DataflowWriteChannel target1, DataflowWriteChannel target2)
|
void
|
split(java.util.Map params, java.util.List targets)
|
void
|
split(Pool pool, java.util.Map params, java.util.List targets)
|
void
|
split(PGroup group, java.util.Map params, java.util.List targets)
|
protected void
|
subscribe()
Evaluates the expression after the ones we depend on are ready |
protected void
|
subscribe(DataflowExpression.DataflowExpressionsCollector listener)
|
DataflowReadChannel
|
tap(DataflowWriteChannel target)
|
DataflowReadChannel
|
tap(Pool pool, DataflowWriteChannel target)
|
DataflowReadChannel
|
tap(PGroup group, DataflowWriteChannel target)
|
DataflowReadChannel
|
tap(java.util.Map params, DataflowWriteChannel target)
|
DataflowReadChannel
|
tap(Pool pool, java.util.Map params, DataflowWriteChannel target)
|
DataflowReadChannel
|
tap(PGroup group, java.util.Map params, DataflowWriteChannel target)
|
Promise
|
then(groovy.lang.Closure closure)
|
Promise
|
then(Pool pool, groovy.lang.Closure closure)
Send all pieces of data bound in the future to the provided stream when it becomes available |
Promise
|
then(PGroup group, groovy.lang.Closure closure)
Send all pieces of data bound in the future to the provided stream when it becomes available. |
java.lang.String
|
toString()
|
static DataflowExpression
|
transform(java.lang.Object another, groovy.lang.Closure closure)
A utility method to call at the very end of constructors of derived expressions. |
void
|
whenBound(groovy.lang.Closure closure)
Schedule closure to be executed by pooled actor after data becomes available. |
void
|
whenBound(Pool pool, groovy.lang.Closure closure)
Send the bound data to provided stream when it becomes available |
void
|
whenBound(PGroup group, groovy.lang.Closure closure)
|
void
|
whenBound(MessageStream stream)
Schedule closure to be executed after data becomes available. |
void
|
wheneverBound(groovy.lang.Closure closure)
|
void
|
wheneverBound(MessageStream stream)
|
Methods inherited from class WithSerialId | |
---|---|
createRemoteHandle, getOrCreateSerialHandle, getRemoteClass, writeReplace |
Field Detail |
---|
private static final java.lang.String ATTACHMENT
private static final java.lang.String A_DATAFLOW_VARIABLE_CAN_ONLY_BE_ASSIGNED_ONCE_ONLY_RE_ASSIGNMENTS_TO_AN_EQUAL_VALUE_ARE_ALLOWED
private static final java.lang.String CANNOT_FIRE_BIND_ERRORS_THE_THREAD_HAS_BEEN_INTERRUPTED
private static final java.lang.String RESULT
protected static final int S_INITIALIZED
protected static final int S_INITIALIZING
protected static final int S_NOT_INITIALIZED
private static final DataflowExpression.WaitingThread dummyWaitingThread
protected java.lang.Throwable error
private DataflowChannelEventOrchestrator eventManager
private groovy.lang.MetaClass metaClass
private static final long serialVersionUID
protected final java.util.concurrent.atomic.AtomicInteger state
* Possible states protected java.lang.Object value
private final java.util.concurrent.atomic.AtomicReference waiting
Constructor Detail |
---|
DataflowExpression()
Method Detail |
---|
protected java.lang.Object DataflowExpression()
parameters.put("outputs", asList(asList(trueBranch, falseBranch))); public void binaryChoice(DataflowWriteChannel trueBranch, DataflowWriteChannel falseBranch, groovy.lang.Closure code)
@Override public void binaryChoice(Pool pool, DataflowWriteChannel trueBranch, DataflowWriteChannel falseBranch, groovy.lang.Closure code)
@Override public void binaryChoice(PGroup group, DataflowWriteChannel trueBranch, DataflowWriteChannel falseBranch, groovy.lang.Closure code)
@Override public void binaryChoice(java.util.Map params, DataflowWriteChannel trueBranch, DataflowWriteChannel falseBranch, groovy.lang.Closure code)
@Override public void binaryChoice(Pool pool, java.util.Map params, DataflowWriteChannel trueBranch, DataflowWriteChannel falseBranch, groovy.lang.Closure code)
@Override public void binaryChoice(PGroup group, java.util.Map params, DataflowWriteChannel trueBranch, DataflowWriteChannel falseBranch, groovy.lang.Closure code)
public final void bind(java.lang.Object value)
public final void bindError(java.lang.Throwable e)
public final void bindSafely(java.lang.Object value)
value
- The value to assign
public final void bindUnique(java.lang.Object value)
value
- The value to assign
@Override public final DataflowReadChannel chainWith(groovy.lang.Closure closure)
} public final DataflowReadChannel chainWith(Pool pool, groovy.lang.Closure closure)
} public DataflowReadChannel chainWith(PGroup group, groovy.lang.Closure closure)
public DataflowReadChannelfilter(final Pool pool, final Closure closure) { public final DataflowReadChannel chainWith(java.util.Map params, groovy.lang.Closure closure)
public DataflowReadChannelfilter(final PGroup group, final Closure closure) { public final DataflowReadChannel chainWith(Pool pool, java.util.Map params, groovy.lang.Closure closure)
public DataflowReadChannelfilter(final Map params, final Closure closure) { return chainWith(params, new FilterClosure(closure)); public DataflowReadChannel chainWith(PGroup group, java.util.Map params, groovy.lang.Closure closure)
parameters.put("outputs", asList(asList(outputs))); public void choice(java.util.List outputs, groovy.lang.Closure code)
@Override public void choice(Pool pool, java.util.List outputs, groovy.lang.Closure code)
@Override public void choice(PGroup group, java.util.List outputs, groovy.lang.Closure code)
@Override public void choice(java.util.Map params, java.util.List outputs, groovy.lang.Closure code)
@Override public void choice(Pool pool, java.util.Map params, java.util.List outputs, groovy.lang.Closure code)
@Override public void choice(PGroup group, java.util.Map params, java.util.List outputs, groovy.lang.Closure code)
private DataflowChannelEventOrchestrator createEventManager()
private void doBind(java.lang.Object value)
protected void doBindImpl(java.lang.Object value)
public final void doBindRemote(java.util.UUID hostId, java.lang.Object message)
hostId
- Id of the bind originator hostmessage
- The value to bind
protected java.lang.Object evaluate()
propertyName
- The name of the property to retrieve
public DataflowReadChannel filter(groovy.lang.Closure closure)
public DataflowReadChannel filter(Pool pool, groovy.lang.Closure closure)
public DataflowReadChannel filter(PGroup group, groovy.lang.Closure closure)
protected void doRun(final T argument) { public DataflowReadChannel filter(java.util.Map params, groovy.lang.Closure closure)
public DataflowReadChannel filter(Pool pool, java.util.Map params, groovy.lang.Closure closure)
public DataflowReadChannel filter(PGroup group, java.util.Map params, groovy.lang.Closure closure)
private void fireBindError(java.lang.Object value, boolean unique)
private void fireBindError(java.lang.Throwable e)
private void fireOnMessage(java.lang.Object value)
public BindErrorListenerManager getBindErrorManager()
throw new IllegalStateException(CANNOT_FIRE_BIND_ERRORS_THE_THREAD_HAS_BEEN_INTERRUPTED, ex); public DataflowChannelEventListenerManager getEventManager()
return dataflowExpression.value; public final groovy.lang.MetaClass getMetaClass()
final class DataflowExpressionsCollector extends MessageStream { public final java.lang.Object getProperty(java.lang.String propertyName)
while (state.get() != S_INITIALIZED) { public java.lang.Object getVal()
final long toWait = endNano - System.nanoTime(); public java.lang.Object getVal(long timeout, java.util.concurrent.TimeUnit units)
timeout
- The timeout valueunits
- Units for the timeout
* @param callback An actor to send the bound value plus the supplied index to. public void getValAsync(MessageStream callback)
break; public void getValAsync(java.lang.Object attachment, MessageStream callback)
private static void handleInterruption(java.util.concurrent.atomic.AtomicBoolean newWaiting)
public void into(DataflowWriteChannel target)
protected void doRun(final T argument) { public void into(Pool pool, DataflowWriteChannel target)
public void into(PGroup group, DataflowWriteChannel target)
public void into(java.util.Map params, DataflowWriteChannel target)
public void into(Pool pool, java.util.Map params, DataflowWriteChannel target)
public void into(PGroup group, java.util.Map params, DataflowWriteChannel target)
@Override public final java.lang.Object invokeMethod(java.lang.String name, java.lang.Object args)
* public final boolean isBound()
public final void join()
public final void join(long timeout, java.util.concurrent.TimeUnit units)
getValAsync(null, callback); public final int length()
final Listinputs = new ArrayList (); public DataflowReadChannel merge(DataflowReadChannel other, groovy.lang.Closure closure)
} public DataflowReadChannel merge(Pool pool, DataflowReadChannel other, groovy.lang.Closure closure)
} public DataflowReadChannel merge(PGroup group, DataflowReadChannel other, groovy.lang.Closure closure)
} public DataflowReadChannel merge(java.util.List others, groovy.lang.Closure closure)
} public DataflowReadChannel merge(Pool pool, java.util.List others, groovy.lang.Closure closure)
} public DataflowReadChannel merge(PGroup group, java.util.List others, groovy.lang.Closure closure)
final Collection> inputs = new ArrayList >(); public DataflowReadChannel merge(java.util.Map params, DataflowReadChannel other, groovy.lang.Closure closure)
parameters.put("outputs", asList(result)); public DataflowReadChannel merge(Pool pool, java.util.Map params, DataflowReadChannel other, groovy.lang.Closure closure)
public DataflowReadChannel merge(PGroup group, java.util.Map params, DataflowReadChannel other, groovy.lang.Closure closure)
public DataflowReadChannel merge(java.util.Map params, java.util.List others, groovy.lang.Closure closure)
public DataflowReadChannel merge(Pool pool, java.util.Map params, java.util.List others, groovy.lang.Closure closure)
@Override public DataflowReadChannel merge(PGroup group, java.util.Map params, java.util.List others, groovy.lang.Closure closure)
private void notifyRemote(java.util.UUID hostId)
public DataflowReadChannel or(groovy.lang.Closure closure)
public void or(DataflowWriteChannel target)
} public final DataflowExpression poll()
public final Promise rightShift(groovy.lang.Closure closure)
pool
- The thread pool to use for task scheduling for asynchronous message deliveryclosure
- closure to execute when data becomes available. The closure should take at most one argument.
* @param closure closure to execute when data becomes available. The closure should take at most one argument. protected void scheduleCallback(java.lang.Object attachment, MessageStream callback)
attachment
- An arbitrary object identifying the requestcallback
- The actor to send the message to
parameters.put("outputs", asList(asList(outputs))); public void separate(java.util.List outputs, groovy.lang.Closure code)
private volatile DataflowChannelEventOrchestratoreventManager; public void separate(Pool pool, java.util.List outputs, groovy.lang.Closure code)
} public void separate(PGroup group, java.util.List outputs, groovy.lang.Closure code)
public void separate(java.util.Map params, java.util.List outputs, groovy.lang.Closure code)
} public void separate(Pool pool, java.util.Map params, java.util.List outputs, groovy.lang.Closure code)
} public void separate(PGroup group, java.util.Map params, java.util.List outputs, groovy.lang.Closure code)
return this; public final void setMetaClass(groovy.lang.MetaClass metaClass)
return element; public final void setProperty(java.lang.String propertyName, java.lang.Object newValue)
protected void doRun(final T argument) { public void split(DataflowWriteChannel target1, DataflowWriteChannel target2)
}); public void split(Pool pool, DataflowWriteChannel target1, DataflowWriteChannel target2)
split(Dataflow.retrieveCurrentDFPGroup(), params, target1, target2); public void split(PGroup group, DataflowWriteChannel target1, DataflowWriteChannel target2)
split(new DefaultPGroup(pool), params, target1, target2); public void split(java.util.List targets)
split(group, params, asList(target1, target2)); public void split(Pool pool, java.util.List targets)
split(Dataflow.retrieveCurrentDFPGroup(), params, targets); public void split(PGroup group, java.util.List targets)
protected void doRun(final T argument) { public void split(java.util.Map params, DataflowWriteChannel target1, DataflowWriteChannel target2)
}); public void split(Pool pool, java.util.Map params, DataflowWriteChannel target1, DataflowWriteChannel target2)
return tap(Dataflow.retrieveCurrentDFPGroup(), target); public void split(PGroup group, java.util.Map params, DataflowWriteChannel target1, DataflowWriteChannel target2)
return tap(new DefaultPGroup(pool), target); public void split(java.util.Map params, java.util.List targets)
public DataflowReadChanneltap(final PGroup group, final DataflowWriteChannel target) { public void split(Pool pool, java.util.Map params, java.util.List targets)
result.leftShift(argument); public void split(PGroup group, java.util.Map params, java.util.List targets)
protected final void subscribe()
protected void subscribe(DataflowExpression.DataflowExpressionsCollector listener)
@Override public DataflowReadChannel tap(DataflowWriteChannel target)
@SuppressWarnings({"ClassReferencesSubclass"}) public DataflowReadChannel tap(Pool pool, DataflowWriteChannel target)
@Override public DataflowReadChannel tap(PGroup group, DataflowWriteChannel target)
} public DataflowReadChannel tap(java.util.Map params, DataflowWriteChannel target)
} public DataflowReadChannel tap(Pool pool, java.util.Map params, DataflowWriteChannel target)
} public DataflowReadChannel tap(PGroup group, java.util.Map params, DataflowWriteChannel target)
* @param closure closure to execute when data becomes available. The closure should take at most one argument. public final Promise then(groovy.lang.Closure closure)
public finalvoid wheneverBound(final Closure closure) { public final Promise then(Pool pool, groovy.lang.Closure closure)
closure
- closure to execute when data becomes available. The closure should take at most one argument.
return chainWith(Dataflow.retrieveCurrentDFPGroup(), closure); public final Promise then(PGroup group, groovy.lang.Closure closure)
stream
- stream where to send result
private static final long serialVersionUID = 4115456542358280855L; private final Closure closure; public java.lang.String toString()
public static DataflowExpression transform(java.lang.Object another, groovy.lang.Closure closure)
} public final void whenBound(groovy.lang.Closure closure)
group
- The PGroup to use for task scheduling for asynchronous message deliveryclosure
- closure to execute when data becomes available. The closure should take at most one argument.
* Schedule closure to be executed after data became available. public void whenBound(Pool pool, groovy.lang.Closure closure)
stream
- stream where to send result
public final void whenBound(PGroup group, groovy.lang.Closure closure)
@Override public final void whenBound(MessageStream stream)
pool
- The thread pool to use for task scheduling for asynchronous message deliveryclosure
- closure to execute when data becomes available. The closure should take at most one argument.
whenBound(group, new ThenMessagingRunnable(result, closure)); public final void wheneverBound(groovy.lang.Closure closure)
public finalDataflowReadChannel chainWith(final Pool pool, final Map params, final Closure closure) { public final void wheneverBound(MessageStream stream)
Copyright © 2008–2013 Václav Pech. All Rights Reserved.