flowcontrol

package
v0.0.0-...-582326c Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 22, 2022 License: MIT Imports: 9 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ErrReceivedSmallerByteOffset = errors.New("Received a smaller byte offset")

ErrReceivedSmallerByteOffset occurs if the ByteOffset received is smaller than a ByteOffset that was set previously

Functions

This section is empty.

Types

type FlowControlManager

type FlowControlManager interface {
	NewStream(streamID protocol.StreamID, contributesToConnectionFlow bool)
	RemoveStream(streamID protocol.StreamID)
	// methods needed for receiving data
	ResetStream(streamID protocol.StreamID, byteOffset protocol.ByteCount) error
	UpdateHighestReceived(streamID protocol.StreamID, byteOffset protocol.ByteCount) error
	AddBytesRead(streamID protocol.StreamID, n protocol.ByteCount) error
	GetWindowUpdates(force bool) []WindowUpdate
	GetReceiveWindow(streamID protocol.StreamID) (protocol.ByteCount, error)
	// methods needed for sending data
	AddBytesSent(streamID protocol.StreamID, n protocol.ByteCount) error
	SendWindowSize(streamID protocol.StreamID) (protocol.ByteCount, error)
	RemainingConnectionWindowSize() protocol.ByteCount
	UpdateWindow(streamID protocol.StreamID, offset protocol.ByteCount) (bool, error)
	// methods useful to collect statistics
	GetBytesSent(streamID protocol.StreamID) (protocol.ByteCount, error)
	AddBytesRetrans(streamID protocol.StreamID, n protocol.ByteCount) error
	GetBytesRetrans(streamID protocol.StreamID) (protocol.ByteCount, error)
}

A FlowControlManager manages the flow control

func NewFlowControlManager

func NewFlowControlManager(connectionParameters handshake.ConnectionParametersManager, rttStats *congestion.RTTStats, remoteRTTs map[protocol.PathID]time.Duration) FlowControlManager

NewFlowControlManager creates a new flow control manager

type WindowUpdate

type WindowUpdate struct {
	StreamID protocol.StreamID
	Offset   protocol.ByteCount
}

WindowUpdate provides the data for WindowUpdateFrames.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL