public final class RetransmitHandler extends Object
A max number of retransmits is permitted by Configuration.MAX_RETRANSMITS_DEFAULT. Additional received NAKs
will be ignored if this maximum is reached.
| Constructor and Description |
|---|
RetransmitHandler(NanoClock nanoClock,
AtomicCounter invalidPackets,
FeedbackDelayGenerator delayGenerator,
FeedbackDelayGenerator lingerTimeoutGenerator)
Create a handler for the dealing with the reception of frame request a frame to be retransmitted.
|
| Modifier and Type | Method and Description |
|---|---|
void |
onNak(int termId,
int termOffset,
int length,
int termLength,
RetransmitSender retransmitSender)
Called on reception of a NAK to start retransmits handling.
|
void |
onRetransmitReceived(int termId,
int termOffset)
Called to indicate a retransmission is received that may obviate the need to send one ourselves.
|
void |
processTimeouts(long nowNs,
RetransmitSender retransmitSender)
Called to process any outstanding timeouts.
|
public RetransmitHandler(NanoClock nanoClock, AtomicCounter invalidPackets, FeedbackDelayGenerator delayGenerator, FeedbackDelayGenerator lingerTimeoutGenerator)
nanoClock - used to determine time.invalidPackets - for recording invalid packets.delayGenerator - to use for delay determination.lingerTimeoutGenerator - to use for linger timeout.public void onNak(int termId,
int termOffset,
int length,
int termLength,
RetransmitSender retransmitSender)
termId - from the NAK and the term id of the buffer to retransmit from.termOffset - from the NAK and the offset of the data to retransmit.length - of the missing data.termLength - of the term buffer.retransmitSender - to call if an immediate retransmit is required.public void onRetransmitReceived(int termId,
int termOffset)
NOTE: Currently only called from unit tests. Would be used for retransmitting from receivers for NAK suppression.
termId - of the data.termOffset - of the data.public void processTimeouts(long nowNs,
RetransmitSender retransmitSender)
nowNs - time in nanoseconds.retransmitSender - to call on retransmissions.Copyright © 2014-2023 Real Logic Limited. All Rights Reserved.