Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func NewConnectionFlowController ¶
func NewConnectionFlowController( receiveWindow protocol.ByteCount, maxReceiveWindow protocol.ByteCount, allowWindowIncrease func(size protocol.ByteCount) bool, rttStats *utils.RTTStats, logger utils.Logger, ) *connectionFlowController
NewConnectionFlowController gets a new flow controller for the connection It is created before we receive the peer's transport parameters, thus it starts with a sendWindow of 0.
Types ¶
type ConnectionFlowController ¶
type ConnectionFlowController interface {
AddBytesRead(protocol.ByteCount) (hasWindowUpdate bool)
Reset() error
IsNewlyBlocked() (bool, protocol.ByteCount)
// contains filtered or unexported methods
}
The ConnectionFlowController is the flow controller for the connection.
type StreamFlowController ¶
type StreamFlowController interface {
AddBytesRead(protocol.ByteCount) (hasStreamWindowUpdate, hasConnWindowUpdate bool)
// UpdateHighestReceived is called when a new highest offset is received
// final has to be to true if this is the final offset of the stream,
// as contained in a STREAM frame with FIN bit, and the RESET_STREAM frame
UpdateHighestReceived(offset protocol.ByteCount, final bool, now time.Time) error
// Abandon is called when reading from the stream is aborted early,
// and there won't be any further calls to AddBytesRead.
Abandon()
IsNewlyBlocked() bool
// contains filtered or unexported methods
}
A StreamFlowController is a flow controller for a QUIC stream.
func NewStreamFlowController ¶
func NewStreamFlowController( streamID protocol.StreamID, cfc ConnectionFlowController, receiveWindow protocol.ByteCount, maxReceiveWindow protocol.ByteCount, initialSendWindow protocol.ByteCount, rttStats *utils.RTTStats, logger utils.Logger, ) StreamFlowController
NewStreamFlowController gets a new flow controller for a stream
Click to show internal directories.
Click to hide internal directories.