org.codehaus.gpars

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


Field Summary
 
Fields inherited from class DataflowStreamWriteAdapter
head
 
Constructor Summary
SyncDataflowBroadcast()

 
Method Summary
DataflowReadChannel createReadChannel()

Un-registers the supplied read channel from the broadcast.

java.lang.String toString()

void unsubscribeReadChannel(DataflowReadChannel channel)

 
Methods inherited from class DataflowStreamWriteAdapter
bind, getHead, leftShift, leftShift, toString, updateHead
 

Constructor Detail

SyncDataflowBroadcast

public SyncDataflowBroadcast()


 
Method Detail

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.