create FlowController interface

This commit is contained in:
Marten Seemann
2016-05-19 19:40:21 +07:00
parent d148943bc8
commit c748a8dfc0
8 changed files with 107 additions and 43 deletions

17
flowcontrol/interface.go Normal file
View File

@@ -0,0 +1,17 @@
package flowcontrol
import "github.com/lucas-clemente/quic-go/protocol"
// A FlowController handles the flow control
type FlowController interface {
AddBytesSent(n protocol.ByteCount)
UpdateSendWindow(newOffset protocol.ByteCount) bool
SendWindowSize() protocol.ByteCount
UpdateHighestReceived(byteOffset protocol.ByteCount) protocol.ByteCount
IncrementHighestReceived(increment protocol.ByteCount)
AddBytesRead(n protocol.ByteCount)
MaybeTriggerBlocked() bool
MaybeTriggerWindowUpdate() (bool, protocol.ByteCount)
CheckFlowControlViolation() bool
GetHighestReceived() protocol.ByteCount
}