mirror of https://github.com/ginuerzh/gost
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
26 lines
1.1 KiB
26 lines
1.1 KiB
package flowcontrol
|
|
|
|
import "github.com/lucas-clemente/quic-go/protocol"
|
|
|
|
// WindowUpdate provides the data for WindowUpdateFrames.
|
|
type WindowUpdate struct {
|
|
StreamID protocol.StreamID
|
|
Offset protocol.ByteCount
|
|
}
|
|
|
|
// A FlowControlManager manages the flow control
|
|
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() []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)
|
|
}
|
|
|