Class ClientStreamTracker
- java.lang.Object
-
- org.apache.qpid.protonj2.client.impl.ClientStreamTracker
-
- All Implemented Interfaces:
StreamTracker,Tracker
public final class ClientStreamTracker extends java.lang.Object implements StreamTracker
StreamTrackerimplementation that relies on the ClientTracker to handle the basicOutgoingDeliverymanagement.
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description TrackerawaitAccepted()Waits if necessary for the remote to settle the sent delivery with anAccepteddisposition unless it has either already been settled and accepted or the original delivery was sent settled in which case the remote will not send aDispositionback.TrackerawaitAccepted(long timeout, java.util.concurrent.TimeUnit unit)Waits if necessary for the remote to settle the sent delivery with anAccepteddisposition unless it has either already been settled and accepted or the original delivery was sent settled in which case the remote will not send aDispositionback.StreamTrackerawaitSettlement()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 aDispositionback.StreamTrackerawaitSettlement(long timeout, java.util.concurrent.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 aDispositionback.StreamTrackerdisposition(DeliveryState state, boolean settle)Updates the DeliveryState, and optionally settle the delivery as well.booleanremoteSettled()Gets whether the delivery was settled by the remote peer yet.DeliveryStateremoteState()Gets the current remote state for the tracked delivery.StreamSendersender()StreamTrackersettle()Settles the delivery locally, if notauto-settling.booleansettled()ClientFuture<Tracker>settlementFuture()Returns a future that can be used to wait for the remote to acknowledge receipt of a sent message by settling it.DeliveryStatestate()Gets the current local state for the tracked delivery.-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.apache.qpid.protonj2.client.StreamTracker
settlementFuture
-
Methods inherited from interface org.apache.qpid.protonj2.client.Tracker
awaitAccepted, awaitAccepted, remoteSettled, remoteState, settled, state
-
-
-
-
Method Detail
-
sender
public StreamSender sender()
Description copied from interface:StreamTracker- Specified by:
senderin interfaceStreamTracker- Specified by:
senderin interfaceTracker- Returns:
- the
Senderthat was used to send the delivery that is being tracked.
-
disposition
public StreamTracker disposition(DeliveryState state, boolean settle) throws ClientException
Description copied from interface:TrackerUpdates the DeliveryState, and optionally settle the delivery as well.- Specified by:
dispositionin interfaceStreamTracker- Specified by:
dispositionin interfaceTracker- Parameters:
state- the delivery state to applysettle- whether toTracker.settle()the delivery at the same time- Returns:
- this
Trackerinstance. - Throws:
ClientException- if an error occurs while applying the given disposition
-
settle
public StreamTracker settle() throws ClientException
Description copied from interface:TrackerSettles the delivery locally, if notauto-settling.- Specified by:
settlein interfaceStreamTracker- Specified by:
settlein interfaceTracker- Returns:
- this
Trackerinstance. - Throws:
ClientException- if an error occurs while performing the settlement.
-
awaitSettlement
public StreamTracker awaitSettlement() throws ClientException
Description copied from interface:TrackerWaits 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 aDispositionback.- Specified by:
awaitSettlementin interfaceStreamTracker- Specified by:
awaitSettlementin interfaceTracker- Returns:
- this
Trackerinstance. - Throws:
ClientException- if an error occurs while awaiting the remote settlement.
-
awaitSettlement
public StreamTracker awaitSettlement(long timeout, java.util.concurrent.TimeUnit unit) throws ClientException
Description copied from interface:TrackerWaits 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 aDispositionback.- Specified by:
awaitSettlementin interfaceStreamTracker- Specified by:
awaitSettlementin interfaceTracker- Parameters:
timeout- the maximum time to wait for the remote to settle.unit- the time unit of the timeout argument.- Returns:
- this
Trackerinstance. - Throws:
ClientException- if an error occurs while awaiting the remote settlement.
-
state
public DeliveryState state()
Description copied from interface:TrackerGets the current local state for the tracked delivery.
-
remoteState
public DeliveryState remoteState()
Description copied from interface:TrackerGets the current remote state for the tracked delivery.- Specified by:
remoteStatein interfaceTracker- Returns:
- the remote
DeliveryStateonce a value is received from the remote.
-
remoteSettled
public boolean remoteSettled()
Description copied from interface:TrackerGets whether the delivery was settled by the remote peer yet.- Specified by:
remoteSettledin interfaceTracker- Returns:
- whether the delivery is remotely settled
-
settled
public boolean settled()
-
settlementFuture
public ClientFuture<Tracker> settlementFuture()
Description copied from interface:TrackerReturns a future that can be used to wait for the remote to acknowledge receipt of a sent message by settling it.- Specified by:
settlementFuturein interfaceTracker- Returns:
- a
Futurethat can be used to wait on remote settlement.
-
awaitAccepted
public Tracker awaitAccepted() throws ClientException
Description copied from interface:TrackerWaits if necessary for the remote to settle the sent delivery with anAccepteddisposition unless it has either already been settled and accepted or the original delivery was sent settled in which case the remote will not send aDispositionback.- Specified by:
awaitAcceptedin interfaceTracker- Returns:
- this
Trackerinstance. - Throws:
ClientDeliveryStateException- if the remote sends a disposition other than Accepted.ClientException- if an error occurs while awaiting the remote settlement.
-
awaitAccepted
public Tracker awaitAccepted(long timeout, java.util.concurrent.TimeUnit unit) throws ClientException
Description copied from interface:TrackerWaits if necessary for the remote to settle the sent delivery with anAccepteddisposition unless it has either already been settled and accepted or the original delivery was sent settled in which case the remote will not send aDispositionback.- Specified by:
awaitAcceptedin interfaceTracker- Parameters:
timeout- the maximum time to wait for the remote to settle.unit- the time unit of the timeout argument.- Returns:
- this
Trackerinstance. - Throws:
ClientDeliveryStateException- if the remote sends a disposition other than Accepted.ClientException- if an error occurs while awaiting the remote settlement.
-
-