public class RangeBasedRetransmitter extends Retransmitter
Comparable.compareTo(Object) method compares both ranges
again ranges, and ranges against seqnos. The latter helps to find a range given a seqno, e.g. seqno 105 will find
range [100-120].
Each range is implemented by SeqnoRange, which has a bitset of all missing seqnos. When
a seqno is received, that bit set is updated; the bit corresponding to the seqno is set to 1. A task linked to
the range periodically retransmits missing messages.
When all bits are 1 (= all messages have been received), the range is removed from the hashmap and the retransmission
task is cancelled.| Modifier and Type | Class and Description |
|---|---|
protected class |
RangeBasedRetransmitter.RangeTask |
Retransmitter.RetransmitCommand, Retransmitter.Taskcmd, log, retransmit_timeouts, sender, timer, xmit_stagger_timeout| Constructor and Description |
|---|
RangeBasedRetransmitter(Address sender,
Retransmitter.RetransmitCommand cmd,
TimeScheduler sched)
Create a new Retransmitter associated with the given sender address
|
| Modifier and Type | Method and Description |
|---|---|
void |
add(long first_seqno,
long last_seqno)
Add the given range [first_seqno, last_seqno] in the list of
entries eligible for retransmission.
|
String |
printStats() |
void |
remove(long seqno)
Remove the given sequence number from the list of seqnos eligible
for retransmission.
|
void |
reset()
Reset the retransmitter: clear all msgs and cancel all the respective tasks
|
int |
size() |
String |
toString() |
getXmitStaggerTimeout, setRetransmitTimeouts, setXmitStaggerTimeoutpublic RangeBasedRetransmitter(Address sender, Retransmitter.RetransmitCommand cmd, TimeScheduler sched)
sender - the address from which retransmissions are expected or to which retransmissions are sentcmd - the retransmission callback referencesched - retransmissions schedulerpublic void add(long first_seqno,
long last_seqno)
add in class Retransmitterpublic void remove(long seqno)
remove in class Retransmitterpublic void reset()
reset in class Retransmitterpublic int size()
size in class Retransmitterpublic String printStats()
Copyright © 2012 JBoss by Red Hat. All Rights Reserved.