Class StreamReceiverOptions

java.lang.Object
org.apache.qpid.protonj2.client.LinkOptions<StreamReceiverOptions>
org.apache.qpid.protonj2.client.StreamReceiverOptions
All Implemented Interfaces:
Cloneable

public final class StreamReceiverOptions extends LinkOptions<StreamReceiverOptions> implements Cloneable
Options class that controls various aspects of a StreamReceiver instance and how a streamed message transfer is written.
  • Field Details

    • DEFAULT_READ_BUFFER_SIZE

      public static final int DEFAULT_READ_BUFFER_SIZE
      Defines the default read buffering size which is used to control how much incoming data can be buffered before the remote has back pressured applied to avoid out of memory conditions.
      See Also:
  • Constructor Details

  • Method Details

    • clone

      public StreamReceiverOptions clone()
      Overrides:
      clone in class Object
    • copyInto

      protected StreamReceiverOptions copyInto(StreamReceiverOptions other)
      Copy all options from this StreamReceiverOptions instance into the instance provided.
      Parameters:
      other - the target of this copy operation.
      Returns:
      the StreamReceiverOptions instance that was given.
    • readBufferSize

      public int readBufferSize()
      Returns:
      the configured session capacity for the parent session of the StreamReceiver.
    • readBufferSize

      public StreamReceiverOptions readBufferSize(int readBufferSize)
      Sets the incoming buffer capacity (in bytes) that the StreamReceiver.

      When the remote peer is sending incoming data for a StreamReceiverMessage the amount that is stored in memory before back pressure is applied to the remote is controlled by this option. If the user does not read incoming data as it arrives this limit can prevent out of memory errors that might otherwise arise as the remote attempts to immediately send all contents of very large message payloads.

      Parameters:
      readBufferSize - The number of bytes that the StreamReceiver will buffer for a given StreamReceiverMessage.
      Returns:
      this StreamReceiverOptions instance.
    • autoAccept

      public StreamReceiverOptions autoAccept(boolean autoAccept)
      Controls if the created Receiver will automatically accept the deliveries that have been received by the application (default is true).
      Parameters:
      autoAccept - The value to assign for auto delivery acceptance.
      Returns:
      this StreamReceiverOptions instance.
    • autoAccept

      public boolean autoAccept()
      Returns:
      the current value of the Receiver auto accept setting.
    • creditWindow

      public int creditWindow()
      Returns:
      the credit window configuration that will be applied to created Receiver instances.
    • creditWindow

      public StreamReceiverOptions creditWindow(int creditWindow)
      A credit window value that will be used to maintain an window of credit for Receiver instances that are created. The Receiver will allow up to the credit window amount of incoming deliveries to be queued and as they are read from the Receiver the window will be extended to maintain a consistent backlog of deliveries. The default is to configure a credit window of 10.

      To disable credit windowing and allow the client application to control the credit on the Receiver link the credit window value should be set to zero.

      Parameters:
      creditWindow - The assigned credit window value to use.
      Returns:
      this StreamReceiverOptions instance.
    • drainTimeout

      public long drainTimeout()
      Returns:
      the configured drain timeout value that will use to fail a pending drain request.
    • drainTimeout

      public StreamReceiverOptions drainTimeout(long drainTimeout)
      Sets the drain timeout (in milliseconds) after which a Receiver request to drain link credit is considered failed and the request will be marked as such.
      Parameters:
      drainTimeout - the drainTimeout to use for receiver links.
      Returns:
      this StreamReceiverOptions instance.
    • drainTimeout

      public StreamReceiverOptions drainTimeout(long timeout, TimeUnit units)
      Sets the drain timeout value after which a Receiver request to drain link credit is considered failed and the request will be marked as such.
      Parameters:
      timeout - Timeout value to wait for a remote response.
      units - The TimeUnit that defines the timeout span.
      Returns:
      this StreamReceiverOptions instance.
    • self

      protected StreamReceiverOptions self()
      Specified by:
      self in class LinkOptions<StreamReceiverOptions>
      Returns:
      the true derived type instance for use in this class.