org.apfloat.internal
Class MessagePasser<K,V>

java.lang.Object
  extended by org.apfloat.internal.MessagePasser<K,V>
Type Parameters:
K - The receiver type for this message passer.
V - The message type for this message passer.

public class MessagePasser<K,V>
extends Object

Message passing helper class for parallel codes. The message passer can hold one message for each receiver. This class is safe for concurrent use from multiple threads.

Since:
1.6
Version:
1.6
Author:
Mikko Tommila

Constructor Summary
MessagePasser()
          Default constructor.
 
Method Summary
 V getMessage(K receiver)
          Get a message if one is available.
 V receiveMessage(K receiver)
          Receive a message.
 void sendMessage(K receiver, V message)
          Send a message.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

MessagePasser

public MessagePasser()
Default constructor.

Method Detail

sendMessage

public void sendMessage(K receiver,
                        V message)
Send a message.

Parameters:
receiver - The receiver.
message - The message. Must not be null.

getMessage

public V getMessage(K receiver)
Get a message if one is available. This method will not block.

Parameters:
receiver - The receiver.
Returns:
The message, or null if none is available.

receiveMessage

public V receiveMessage(K receiver)
                 throws ApfloatRuntimeException
Receive a message. This method will block until a message is available.

Parameters:
receiver - The receiver.
Returns:
The message.
Throws:
ApfloatRuntimeException