groovyx.gpars.dataflow
[Java] Class SyncDataflowBroadcast
java.lang.Object
groovyx.gpars.dataflow.stream.DataflowStreamWriteAdapter
groovyx.gpars.dataflow.SyncDataflowBroadcast
public final class SyncDataflowBroadcast
extends DataflowStreamWriteAdapter
Offers a synchronous deterministic one-to-many and many-to-many messaging alternative to SyncDataflowQueue.
Internally it wraps a SyncDataflowStream class with a DataflowStreamWriteAdapter and so
synchronizes all writes to the underlying stream allowing multiple threads accessing the stream concurrently.
On demand through the createReadChannel() method it will return an DataflowReadChannel through which the reader will receive
all messages written to the channel since then.
Typical use:
DataflowWriteChannel broadcastStream = new DataflowBroadcast()
DataflowReadChannel stream1 = broadcastStream.createReadChannel()
DataflowReadChannel stream2 = broadcastStream.createReadChannel()
broadcastStream << 'Message'
assert stream1.val == stream2.val
- Parameters:
- The type of messages to pass through the stream
- Authors:
- Vaclav Pech
SyncDataflowBroadcast
public SyncDataflowBroadcast()
-
createReadChannel
public DataflowReadChannel createReadChannel()
- Un-registers the supplied read channel from the broadcast. The number of parties that have to meet at data exchange is reduced by one.
- throws:
- InterruptedException If the thread got interrupted
- Parameters:
channel
- The channel to unsubscribe. The channel won't be able to read further messages.
toString
@java.lang.SuppressWarningshead.incrementParties();
@java.lang.Overridereturn new SyncDataflowStreamReadAdapter(head);
public java.lang.String toString()
-
unsubscribeReadChannel
public void unsubscribeReadChannel(DataflowReadChannel channel)
-
Copyright © 2008–2013 Václav Pech. All Rights Reserved.