quic-go: github.com/lucas-clemente/quic-go/internal/flowcontrol Index | Files

package flowcontrol

import "github.com/lucas-clemente/quic-go/internal/flowcontrol"


Package Files

base_flow_controller.go connection_flow_controller.go interface.go stream_flow_controller.go

type ConnectionFlowController Uses

type ConnectionFlowController interface {
    // contains filtered or unexported methods

The ConnectionFlowController is the flow controller for the connection.

func NewConnectionFlowController Uses

func NewConnectionFlowController(
    receiveWindow protocol.ByteCount,
    maxReceiveWindow protocol.ByteCount,
    queueWindowUpdate func(),
    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 paramenters, thus it starts with a sendWindow of 0.

type StreamFlowController Uses

type StreamFlowController interface {

    // for receiving
    // UpdateHighestReceived should be 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) error
    // Abandon should be called when reading from the stream is aborted early,
    // and there won't be any further calls to AddBytesRead.
    // contains filtered or unexported methods

A StreamFlowController is a flow controller for a QUIC stream.

func NewStreamFlowController Uses

func NewStreamFlowController(
    streamID protocol.StreamID,
    cfc ConnectionFlowController,
    receiveWindow protocol.ByteCount,
    maxReceiveWindow protocol.ByteCount,
    initialSendWindow protocol.ByteCount,
    queueWindowUpdate func(protocol.StreamID),
    rttStats *utils.RTTStats,
    logger utils.Logger,
) StreamFlowController

NewStreamFlowController gets a new flow controller for a stream

Package flowcontrol imports 6 packages (graph) and is imported by 12 packages. Updated 2020-07-28. Refresh now. Tools for package owners.