net.i2p.router.transport.udp
class OutboundMessageFragments extends Object
getNextVolley()
. This also honors per-peer throttling, taking
note of each peer's allocations. If a message has each of its fragments
sent more than a certain number of times, it is failed out. In addition,
this instance also receives notification of message ACKs from the
InboundMessageFragments
, signaling that we can stop sending a
message.Modifier and Type | Class and Description |
---|---|
static interface |
OutboundMessageFragments.ActiveThrottle |
Modifier and Type | Field and Description |
---|---|
(package private) static int |
MAX_VOLLEYS
if we can handle more messages explicitly, set this to true
|
Constructor and Description |
---|
OutboundMessageFragments(RouterContext ctx,
UDPTransport transport,
OutboundMessageFragments.ActiveThrottle throttle) |
Modifier and Type | Method and Description |
---|---|
void |
acked(ACKBitfield bitfield,
Hash ackedBy) |
int |
acked(long messageId,
Hash ackedBy)
We received an ACK of the given messageId from the given peer, so if it
is still unacked, mark it as complete.
|
void |
add(OutboundMessageState state)
short circuit the OutNetMessage, letting us send the establish
complete message reliably
|
void |
add(OutNetMessage msg)
Add a new message to the active pool
|
(package private) void |
dropPeer(PeerState peer) |
UDPPacket[] |
getNextVolley()
Fetch all the packets for a message volley, blocking until there is a
message which can be fully transmitted (or the transport is shut down).
|
void |
shutdown() |
void |
startup() |
boolean |
waitForMoreAllowed()
Block until we allow more messages to be admitted to the active
pool.
|
static final int MAX_VOLLEYS
public OutboundMessageFragments(RouterContext ctx, UDPTransport transport, OutboundMessageFragments.ActiveThrottle throttle)
public void startup()
public void shutdown()
void dropPeer(PeerState peer)
public boolean waitForMoreAllowed()
OutboundRefiller
public void add(OutNetMessage msg)
public void add(OutboundMessageState state)
public UDPPacket[] getNextVolley()
public int acked(long messageId, Hash ackedBy)
public void acked(ACKBitfield bitfield, Hash ackedBy)