Interface StreamReceiver

  • All Superinterfaces:
    java.lang.AutoCloseable, Receiver
    All Known Implementing Classes:
    ClientStreamReceiver

    public interface StreamReceiver
    extends Receiver
    A receiver of large message content that is delivered in multiple Transfer frames from the remote.
    • Method Detail

      • receive

        StreamDelivery receive()
                        throws ClientException
        Blocking receive method that waits forever for the remote to provide a StreamReceiverMessage for consumption.

        Receive calls will only grant credit on their own if a credit window is configured in the StreamReceiverOptions which is done by default. If the client application has configured no credit window than this method will not grant any credit when it enters the wait for new incoming messages.

        Specified by:
        receive in interface Receiver
        Returns:
        a new Delivery received from the remote.
        Throws:
        ClientException - if the StreamReceiver or its parent is closed when the call to receive is made.
      • receive

        StreamDelivery receive​(long timeout,
                               java.util.concurrent.TimeUnit unit)
                        throws ClientException
        Blocking receive method that waits the given time interval for the remote to provide a StreamReceiverMessage for consumption. The amount of time this method blocks is based on the timeout value. If timeout is equal to -1 then it blocks until a Delivery is received. If timeout is equal to zero then it will not block and simply return a StreamReceiverMessage if one is available locally. If timeout value is greater than zero then it blocks up to timeout amount of time.

        Receive calls will only grant credit on their own if a credit window is configured in the StreamReceiverOptions which is done by default. If the client application has not configured a credit window or granted credit manually this method will not automatically grant any credit when it enters the wait for a new incoming StreamReceiverMessage.

        Specified by:
        receive in interface Receiver
        Parameters:
        timeout - The timeout value used to control how long the receive method waits for a new Delivery.
        unit - The unit of time that the given timeout represents.
        Returns:
        a new StreamReceiverMessage received from the remote.
        Throws:
        ClientException - if the StreamReceiver or its parent is closed when the call to receive is made.
      • addCredit

        StreamReceiver addCredit​(int credits)
                          throws ClientException
        Adds credit to the Receiver link for use when there receiver has not been configured with a credit window. When credit window is configured credit replenishment is automatic and calling this method will result in an exception indicating that the operation is invalid.

        If the Receiver is draining and this method is called an exception will be thrown to indicate that credit cannot be replenished until the remote has drained the existing link credit.

        Specified by:
        addCredit in interface Receiver
        Parameters:
        credits - credit The number of credits to add to the StreamReceiver link.
        Returns:
        this StreamReceiver instance.
        Throws:
        ClientException - if an error occurs while attempting to add new StreamReceiver link credit.