public abstract class Retransmitter extends Object
add()
method adds the sequence numbers of messages to be retransmitted. The
remove()
method removes a sequence number again, cancelling retransmission requests for it.
Whenever a message needs to be retransmitted, the RetransmitCommand.retransmit()
method is called.
It can be used e.g. by an ack-based scheme (e.g. AckSenderWindow) to retransmit a message to the receiver, or
by a nak-based scheme to send a retransmission request to the sender of the missing message.Modifier and Type | Class and Description |
---|---|
static interface |
Retransmitter.RetransmitCommand
Retransmit command (see Gamma et al.) used to retrieve missing messages
|
protected class |
Retransmitter.Task |
Modifier and Type | Field and Description |
---|---|
protected Retransmitter.RetransmitCommand |
cmd |
protected static Log |
log |
protected Interval |
RETRANSMIT_TIMEOUTS
Default retransmit intervals (ms) - exponential approx.
|
protected Address |
sender |
protected TimeScheduler |
timer |
Constructor and Description |
---|
Retransmitter(Address sender,
Retransmitter.RetransmitCommand cmd,
TimeScheduler sched)
Create a new Retransmitter associated with the given sender address
|
Modifier and Type | Method and Description |
---|---|
abstract void |
add(long first_seqno,
long last_seqno)
Add messages from
first_seqno to last_seqno for retransmission |
abstract int |
remove(long seqno)
Remove the given sequence number from retransmission
|
abstract void |
reset()
Reset the retransmitter: clear all msgs and cancel all the respective tasks
|
void |
setRetransmitTimeouts(Interval interval) |
abstract int |
size() |
protected Interval RETRANSMIT_TIMEOUTS
protected final Address sender
protected final Retransmitter.RetransmitCommand cmd
protected final TimeScheduler timer
protected static final Log log
public Retransmitter(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 setRetransmitTimeouts(Interval interval)
public abstract void add(long first_seqno, long last_seqno)
first_seqno
to last_seqno
for retransmissionpublic abstract int remove(long seqno)
public abstract void reset()
public abstract int size()
Copyright © 2013 JBoss, a division of Red Hat. All Rights Reserved.