Interface StreamTracker

All Known Implementing Classes:
ClientNoOpStreamTracker, ClientStreamTracker

public interface StreamTracker
Special StreamSender related Tracker that is linked to any StreamSenderMessage instance and provides the Tracker functions for those types of messages.
  • Method Summary

    Modifier and Type
    Method
    Description
    Waits if necessary for the remote to settle the sent delivery with an Accepted disposition unless it has either already been settled and accepted or the original delivery was sent settled in which case the remote will not send a Disposition back.
    awaitAccepted(long timeout, TimeUnit unit)
    Waits if necessary for the remote to settle the sent delivery with an Accepted disposition unless it has either already been settled and accepted or the original delivery was sent settled in which case the remote will not send a Disposition back.
    Waits if necessary for the remote to settle the sent delivery unless it has either already been settled or the original delivery was sent settled in which case the remote will not send a Disposition back.
    awaitSettlement(long timeout, TimeUnit unit)
    Waits if necessary for the remote to settle the sent delivery unless it has either already been settled or the original delivery was sent settled in which case the remote will not send a Disposition back.
    disposition(DeliveryState state, boolean settle)
    Updates the DeliveryState, and optionally settle the delivery as well.
    boolean
    Gets whether the delivery was settled by the remote peer yet.
    Gets the current remote state for the tracked delivery.
     
    Settles the delivery locally, if not auto-settling.
    boolean
     
    Returns a future that can be used to wait for the remote to acknowledge receipt of a sent message by settling it.
    Gets the current local state for the tracked delivery.
  • Method Details

    • sender

      StreamSender sender()
      Returns:
      the StreamSender that was used to send the delivery that is being tracked.
    • settle

      Settles the delivery locally, if not auto-settling.
      Returns:
      this Tracker instance.
      Throws:
      ClientException - if an error occurs while performing the settlement.
    • settled

      boolean settled()
      Returns:
      true if the sent message has been locally settled.
    • state

      DeliveryState state()
      Gets the current local state for the tracked delivery.
      Returns:
      the delivery state
    • remoteState

      DeliveryState remoteState()
      Gets the current remote state for the tracked delivery.
      Returns:
      the remote DeliveryState once a value is received from the remote.
    • remoteSettled

      boolean remoteSettled()
      Gets whether the delivery was settled by the remote peer yet.
      Returns:
      whether the delivery is remotely settled
    • disposition

      StreamTracker disposition(DeliveryState state, boolean settle) throws ClientException
      Updates the DeliveryState, and optionally settle the delivery as well.
      Parameters:
      state - the delivery state to apply
      settle - whether to settle() the delivery at the same time
      Returns:
      this Tracker instance.
      Throws:
      ClientException - if an error occurs while applying the given disposition
    • settlementFuture

      Future<StreamTracker> settlementFuture()
      Returns a future that can be used to wait for the remote to acknowledge receipt of a sent message by settling it.
      Returns:
      a Future that can be used to wait on remote settlement.
    • awaitSettlement

      StreamTracker awaitSettlement() throws ClientException
      Waits if necessary for the remote to settle the sent delivery unless it has either already been settled or the original delivery was sent settled in which case the remote will not send a Disposition back.
      Returns:
      this Tracker instance.
      Throws:
      ClientException - if an error occurs while awaiting the remote settlement.
    • awaitSettlement

      StreamTracker awaitSettlement(long timeout, TimeUnit unit) throws ClientException
      Waits if necessary for the remote to settle the sent delivery unless it has either already been settled or the original delivery was sent settled in which case the remote will not send a Disposition back.
      Parameters:
      timeout - the maximum time to wait for the remote to settle.
      unit - the time unit of the timeout argument.
      Returns:
      this Tracker instance.
      Throws:
      ClientException - if an error occurs while awaiting the remote settlement.
    • awaitAccepted

      StreamTracker awaitAccepted() throws ClientException
      Waits if necessary for the remote to settle the sent delivery with an Accepted disposition unless it has either already been settled and accepted or the original delivery was sent settled in which case the remote will not send a Disposition back.
      Returns:
      this Tracker instance.
      Throws:
      ClientDeliveryStateException - if the remote sends a disposition other than Accepted.
      ClientException - if an error occurs while awaiting the remote settlement.
    • awaitAccepted

      StreamTracker awaitAccepted(long timeout, TimeUnit unit) throws ClientException
      Waits if necessary for the remote to settle the sent delivery with an Accepted disposition unless it has either already been settled and accepted or the original delivery was sent settled in which case the remote will not send a Disposition back.
      Parameters:
      timeout - the maximum time to wait for the remote to settle.
      unit - the time unit of the timeout argument.
      Returns:
      this Tracker instance.
      Throws:
      ClientDeliveryStateException - if the remote sends a disposition other than Accepted.
      ClientException - if an error occurs while awaiting the remote settlement.