Interface SendPort<Message>

    • Method Summary

      All Methods Instance Methods Abstract Methods Default Methods 
      Modifier and Type Method Description
      default void close​(java.lang.Throwable t)
      Closes the channel so that no more messages could be sent to it, and signifies an exception occurred in the producer.
      default void send​(Message message)
      Sends a message to the channel, possibly blocking until there's room available in the channel.
      boolean send​(Message message, long timeout, java.util.concurrent.TimeUnit unit)
      Sends a message to the channel, possibly blocking until there's room available in the channel, but never longer than the specified timeout.
      default boolean send​(Message message, Timeout timeout)
      Sends a message to the channel, possibly blocking until there's room available in the channel, but never longer than the specified timeout.
      default boolean trySend​(Message message)
      Sends a message to the channel if the channel has room available.
    • Method Detail

      • send

        default void send​(Message message)
                   throws SuspendExecution,
                          java.lang.InterruptedException
        Sends a message to the channel, possibly blocking until there's room available in the channel. If the channel is full, this method may block, throw an exception, silently drop the message, or displace an old message from the channel. The behavior is determined by the channel's OverflowPolicy, set at construction time.
        Parameters:
        message - the message
        Throws:
        SuspendExecution
        java.lang.InterruptedException
      • send

        boolean send​(Message message,
                     long timeout,
                     java.util.concurrent.TimeUnit unit)
              throws SuspendExecution,
                     java.lang.InterruptedException
        Sends a message to the channel, possibly blocking until there's room available in the channel, but never longer than the specified timeout. If the channel is full, this method may block, throw an exception, silently drop the message, or displace an old message from the channel. The behavior is determined by the channel's OverflowPolicy, set at construction time.
        Parameters:
        message - the message
        timeout - the maximum duration this method is allowed to wait.
        unit - the timeout's time unit
        Returns:
        true if the message has been sent successfully; false if the timeout has expired.
        Throws:
        SuspendExecution
        java.lang.InterruptedException
      • send

        default boolean send​(Message message,
                             Timeout timeout)
                      throws SuspendExecution,
                             java.lang.InterruptedException
        Sends a message to the channel, possibly blocking until there's room available in the channel, but never longer than the specified timeout. If the channel is full, this method may block, throw an exception, silently drop the message, or displace an old message from the channel. The behavior is determined by the channel's OverflowPolicy, set at construction time.
        Parameters:
        message - the message
        timeout - the method will not block for longer than the amount remaining in the Timeout
        Returns:
        true if the message has been sent successfully; false if the timeout has expired.
        Throws:
        SuspendExecution
        java.lang.InterruptedException
      • trySend

        default boolean trySend​(Message message)
        Sends a message to the channel if the channel has room available. This method never blocks.
        Parameters:
        message - the message
        Returns:
        true if the message has been sent; false otherwise.
      • close

        default void close​(java.lang.Throwable t)
        Closes the channel so that no more messages could be sent to it, and signifies an exception occurred in the producer. The exception will be thrown when the consumer calls ReceivePort's receive or tryReceive, wrapped by a ProducerException. Messages already sent to the channel prior to calling this method will still be received.
        Parameters:
        t - the exception causing the close