Class 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 java.lang.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.14.0
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private java.util.Map<K,​V> messages  
    • Constructor Summary

      Constructors 
      Constructor Description
      MessagePasser()
      Default constructor.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      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
    • Field Detail

      • messages

        private java.util.Map<K,​V> messages
    • 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