public class MinMulticastFlowControl extends java.lang.Object implements FlowControl
Flow control is set to minimum of tracked receivers.
Tracking of receivers is done as long as they continue to send Status Messages. Once SMs stop, the receiver tracking for that receiver will timeout after a given number of nanoseconds.
| Constructor and Description |
|---|
MinMulticastFlowControl() |
| Modifier and Type | Method and Description |
|---|---|
void |
initialize(int initialTermId,
int termBufferLength)
Initialize the flow control strategy
|
long |
onIdle(long timeNs,
long senderLimit,
long senderPosition,
boolean isEndOfStream)
Perform any maintenance needed by the flow control strategy and return current position
|
long |
onStatusMessage(io.aeron.protocol.StatusMessageFlyweight flyweight,
java.net.InetSocketAddress receiverAddress,
long senderLimit,
int initialTermId,
int positionBitsToShift,
long timeNs)
Update the sender flow control strategy based on a status message from the receiver.
|
boolean |
shouldLinger(long timeNs)
Called from the
DriverConductor to check should the NetworkPublication linger or not. |
public void initialize(int initialTermId,
int termBufferLength)
initialize in interface FlowControlinitialTermId - for the term bufferstermBufferLength - to use as the length of each term bufferpublic long onStatusMessage(io.aeron.protocol.StatusMessageFlyweight flyweight,
java.net.InetSocketAddress receiverAddress,
long senderLimit,
int initialTermId,
int positionBitsToShift,
long timeNs)
onStatusMessage in interface FlowControlflyweight - the Status Message contentsreceiverAddress - of the receiver.senderLimit - the current sender position limit.initialTermId - for the term buffers.positionBitsToShift - in use for the length of each term buffer.timeNs - current time (in nanoseconds). System.nanoTime()public long onIdle(long timeNs,
long senderLimit,
long senderPosition,
boolean isEndOfStream)
onIdle in interface FlowControltimeNs - current time in nanoseconds.senderLimit - for the current sender position.senderPosition - for the currentisEndOfStream - for the current sender.public boolean shouldLinger(long timeNs)
DriverConductor to check should the NetworkPublication linger or not.shouldLinger in interface FlowControltimeNs - current time in nanoseconds.Copyright © 2014-2017 Real Logic Ltd. All Rights Reserved.