Documentation ¶
Index ¶
- Constants
- func AbsDuration(d time.Duration) time.Duration
- func HostnameFromAddr(addr string) (string, error)
- func Max(a, b int) int
- func MaxByteCount(a, b protocol.ByteCount) protocol.ByteCount
- func MaxDuration(a, b time.Duration) time.Duration
- func MaxInt64(a, b int64) int64
- func MaxPacketNumber(a, b protocol.PacketNumber) protocol.PacketNumber
- func MaxTime(a, b time.Time) time.Time
- func MaxUint32(a, b uint32) uint32
- func MaxUint64(a, b uint64) uint64
- func Min(a, b int) int
- func MinByteCount(a, b protocol.ByteCount) protocol.ByteCount
- func MinDuration(a, b time.Duration) time.Duration
- func MinInt64(a, b int64) int64
- func MinNonZeroTime(a, b time.Time) time.Time
- func MinPacketNumber(a, b protocol.PacketNumber) protocol.PacketNumber
- func MinTime(a, b time.Time) time.Time
- func MinUint32(a, b uint32) uint32
- func MinUint64(a, b uint64) uint64
- func ReadVarInt(b io.ByteReader) (uint64, error)
- func VarIntLen(i uint64) protocol.ByteCount
- func WriteVarInt(b *bytes.Buffer, i uint64)
- type AtomicBool
- type ByteInterval
- type ByteIntervalElement
- type ByteIntervalList
- func (l *ByteIntervalList) Back() *ByteIntervalElement
- func (l *ByteIntervalList) Front() *ByteIntervalElement
- func (l *ByteIntervalList) Init() *ByteIntervalList
- func (l *ByteIntervalList) InsertAfter(v ByteInterval, mark *ByteIntervalElement) *ByteIntervalElement
- func (l *ByteIntervalList) InsertBefore(v ByteInterval, mark *ByteIntervalElement) *ByteIntervalElement
- func (l *ByteIntervalList) Len() int
- func (l *ByteIntervalList) MoveAfter(e, mark *ByteIntervalElement)
- func (l *ByteIntervalList) MoveBefore(e, mark *ByteIntervalElement)
- func (l *ByteIntervalList) MoveToBack(e *ByteIntervalElement)
- func (l *ByteIntervalList) MoveToFront(e *ByteIntervalElement)
- func (l *ByteIntervalList) PushBack(v ByteInterval) *ByteIntervalElement
- func (l *ByteIntervalList) PushBackList(other *ByteIntervalList)
- func (l *ByteIntervalList) PushFront(v ByteInterval) *ByteIntervalElement
- func (l *ByteIntervalList) PushFrontList(other *ByteIntervalList)
- func (l *ByteIntervalList) Remove(e *ByteIntervalElement) ByteInterval
- type ByteOrder
- type LogLevel
- type Logger
- type PacketInterval
- type PacketIntervalElement
- type PacketIntervalList
- func (l *PacketIntervalList) Back() *PacketIntervalElement
- func (l *PacketIntervalList) Front() *PacketIntervalElement
- func (l *PacketIntervalList) Init() *PacketIntervalList
- func (l *PacketIntervalList) InsertAfter(v PacketInterval, mark *PacketIntervalElement) *PacketIntervalElement
- func (l *PacketIntervalList) InsertBefore(v PacketInterval, mark *PacketIntervalElement) *PacketIntervalElement
- func (l *PacketIntervalList) Len() int
- func (l *PacketIntervalList) MoveAfter(e, mark *PacketIntervalElement)
- func (l *PacketIntervalList) MoveBefore(e, mark *PacketIntervalElement)
- func (l *PacketIntervalList) MoveToBack(e *PacketIntervalElement)
- func (l *PacketIntervalList) MoveToFront(e *PacketIntervalElement)
- func (l *PacketIntervalList) PushBack(v PacketInterval) *PacketIntervalElement
- func (l *PacketIntervalList) PushBackList(other *PacketIntervalList)
- func (l *PacketIntervalList) PushFront(v PacketInterval) *PacketIntervalElement
- func (l *PacketIntervalList) PushFrontList(other *PacketIntervalList)
- func (l *PacketIntervalList) Remove(e *PacketIntervalElement) PacketInterval
- type Timer
Constants ¶
const InfDuration = time.Duration(math.MaxInt64)
InfDuration is a duration of infinite length
Variables ¶
This section is empty.
Functions ¶
func AbsDuration ¶
AbsDuration returns the absolute value of a time duration
func HostnameFromAddr ¶
HostnameFromAddr determines the hostname in an address string
func MaxByteCount ¶ added in v0.8.0
MaxByteCount returns the maximum of two ByteCounts
func MaxDuration ¶
MaxDuration returns the max duration
func MaxPacketNumber ¶
func MaxPacketNumber(a, b protocol.PacketNumber) protocol.PacketNumber
MaxPacketNumber returns the max packet number
func MinByteCount ¶
MinByteCount returns the minimum of two ByteCounts
func MinDuration ¶
MinDuration returns the minimum duration
func MinNonZeroTime ¶ added in v0.19.2
MinNonZeroTime returns the earlist time that is not time.Time{} If both a and b are time.Time{}, it returns time.Time{}
func MinPacketNumber ¶
func MinPacketNumber(a, b protocol.PacketNumber) protocol.PacketNumber
MinPacketNumber returns the min packet number
func ReadVarInt ¶
func ReadVarInt(b io.ByteReader) (uint64, error)
ReadVarInt reads a number in the QUIC varint format
func WriteVarInt ¶
WriteVarInt writes a number in the QUIC varint format
Types ¶
type AtomicBool ¶
type AtomicBool struct {
// contains filtered or unexported fields
}
An AtomicBool is an atomic bool
type ByteInterval ¶
ByteInterval is an interval from one ByteCount to the other
type ByteIntervalElement ¶
type ByteIntervalElement struct { // The value stored with this element. Value ByteInterval // contains filtered or unexported fields }
ByteIntervalElement is an element of a linked list.
func (*ByteIntervalElement) Next ¶
func (e *ByteIntervalElement) Next() *ByteIntervalElement
Next returns the next list element or nil.
func (*ByteIntervalElement) Prev ¶
func (e *ByteIntervalElement) Prev() *ByteIntervalElement
Prev returns the previous list element or nil.
type ByteIntervalList ¶
type ByteIntervalList struct {
// contains filtered or unexported fields
}
ByteIntervalList is a linked list of ByteIntervals.
func NewByteIntervalList ¶
func NewByteIntervalList() *ByteIntervalList
NewByteIntervalList returns an initialized list.
func (*ByteIntervalList) Back ¶
func (l *ByteIntervalList) Back() *ByteIntervalElement
Back returns the last element of list l or nil if the list is empty.
func (*ByteIntervalList) Front ¶
func (l *ByteIntervalList) Front() *ByteIntervalElement
Front returns the first element of list l or nil if the list is empty.
func (*ByteIntervalList) Init ¶
func (l *ByteIntervalList) Init() *ByteIntervalList
Init initializes or clears list l.
func (*ByteIntervalList) InsertAfter ¶
func (l *ByteIntervalList) InsertAfter(v ByteInterval, mark *ByteIntervalElement) *ByteIntervalElement
InsertAfter inserts a new element e with value v immediately after mark and returns e. If mark is not an element of l, the list is not modified. The mark must not be nil.
func (*ByteIntervalList) InsertBefore ¶
func (l *ByteIntervalList) InsertBefore(v ByteInterval, mark *ByteIntervalElement) *ByteIntervalElement
InsertBefore inserts a new element e with value v immediately before mark and returns e. If mark is not an element of l, the list is not modified. The mark must not be nil.
func (*ByteIntervalList) Len ¶
func (l *ByteIntervalList) Len() int
Len returns the number of elements of list l. The complexity is O(1).
func (*ByteIntervalList) MoveAfter ¶
func (l *ByteIntervalList) MoveAfter(e, mark *ByteIntervalElement)
MoveAfter moves element e to its new position after mark. If e or mark is not an element of l, or e == mark, the list is not modified. The element and mark must not be nil.
func (*ByteIntervalList) MoveBefore ¶
func (l *ByteIntervalList) MoveBefore(e, mark *ByteIntervalElement)
MoveBefore moves element e to its new position before mark. If e or mark is not an element of l, or e == mark, the list is not modified. The element and mark must not be nil.
func (*ByteIntervalList) MoveToBack ¶
func (l *ByteIntervalList) MoveToBack(e *ByteIntervalElement)
MoveToBack moves element e to the back of list l. If e is not an element of l, the list is not modified. The element must not be nil.
func (*ByteIntervalList) MoveToFront ¶
func (l *ByteIntervalList) MoveToFront(e *ByteIntervalElement)
MoveToFront moves element e to the front of list l. If e is not an element of l, the list is not modified. The element must not be nil.
func (*ByteIntervalList) PushBack ¶
func (l *ByteIntervalList) PushBack(v ByteInterval) *ByteIntervalElement
PushBack inserts a new element e with value v at the back of list l and returns e.
func (*ByteIntervalList) PushBackList ¶
func (l *ByteIntervalList) PushBackList(other *ByteIntervalList)
PushBackList inserts a copy of an other list at the back of list l. The lists l and other may be the same. They must not be nil.
func (*ByteIntervalList) PushFront ¶
func (l *ByteIntervalList) PushFront(v ByteInterval) *ByteIntervalElement
PushFront inserts a new element e with value v at the front of list l and returns e.
func (*ByteIntervalList) PushFrontList ¶
func (l *ByteIntervalList) PushFrontList(other *ByteIntervalList)
PushFrontList inserts a copy of an other list at the front of list l. The lists l and other may be the same. They must not be nil.
func (*ByteIntervalList) Remove ¶
func (l *ByteIntervalList) Remove(e *ByteIntervalElement) ByteInterval
Remove removes e from l if e is an element of list l. It returns the element value e.Value. The element must not be nil.
type ByteOrder ¶
type ByteOrder interface { ReadUintN(b io.ByteReader, length uint8) (uint64, error) ReadUint32(io.ByteReader) (uint32, error) ReadUint16(io.ByteReader) (uint16, error) WriteUintN(b *bytes.Buffer, length uint8, value uint64) WriteUint32(*bytes.Buffer, uint32) WriteUint16(*bytes.Buffer, uint16) }
A ByteOrder specifies how to convert byte sequences into 16-, 32-, or 64-bit unsigned integers.
var BigEndian ByteOrder = bigEndian{}
BigEndian is the big-endian implementation of ByteOrder.
type Logger ¶ added in v0.8.0
type Logger interface { SetLogLevel(LogLevel) SetLogTimeFormat(format string) WithPrefix(prefix string) Logger Debug() bool Errorf(format string, args ...interface{}) Infof(format string, args ...interface{}) Debugf(format string, args ...interface{}) }
A Logger logs.
var DefaultLogger Logger
DefaultLogger is used by quic-go for logging.
type PacketInterval ¶
type PacketInterval struct { Start protocol.PacketNumber End protocol.PacketNumber }
PacketInterval is an interval from one PacketNumber to the other
type PacketIntervalElement ¶
type PacketIntervalElement struct { // The value stored with this element. Value PacketInterval // contains filtered or unexported fields }
PacketIntervalElement is an element of a linked list.
func (*PacketIntervalElement) Next ¶
func (e *PacketIntervalElement) Next() *PacketIntervalElement
Next returns the next list element or nil.
func (*PacketIntervalElement) Prev ¶
func (e *PacketIntervalElement) Prev() *PacketIntervalElement
Prev returns the previous list element or nil.
type PacketIntervalList ¶
type PacketIntervalList struct {
// contains filtered or unexported fields
}
PacketIntervalList is a linked list of PacketIntervals.
func NewPacketIntervalList ¶
func NewPacketIntervalList() *PacketIntervalList
NewPacketIntervalList returns an initialized list.
func (*PacketIntervalList) Back ¶
func (l *PacketIntervalList) Back() *PacketIntervalElement
Back returns the last element of list l or nil if the list is empty.
func (*PacketIntervalList) Front ¶
func (l *PacketIntervalList) Front() *PacketIntervalElement
Front returns the first element of list l or nil if the list is empty.
func (*PacketIntervalList) Init ¶
func (l *PacketIntervalList) Init() *PacketIntervalList
Init initializes or clears list l.
func (*PacketIntervalList) InsertAfter ¶
func (l *PacketIntervalList) InsertAfter(v PacketInterval, mark *PacketIntervalElement) *PacketIntervalElement
InsertAfter inserts a new element e with value v immediately after mark and returns e. If mark is not an element of l, the list is not modified. The mark must not be nil.
func (*PacketIntervalList) InsertBefore ¶
func (l *PacketIntervalList) InsertBefore(v PacketInterval, mark *PacketIntervalElement) *PacketIntervalElement
InsertBefore inserts a new element e with value v immediately before mark and returns e. If mark is not an element of l, the list is not modified. The mark must not be nil.
func (*PacketIntervalList) Len ¶
func (l *PacketIntervalList) Len() int
Len returns the number of elements of list l. The complexity is O(1).
func (*PacketIntervalList) MoveAfter ¶
func (l *PacketIntervalList) MoveAfter(e, mark *PacketIntervalElement)
MoveAfter moves element e to its new position after mark. If e or mark is not an element of l, or e == mark, the list is not modified. The element and mark must not be nil.
func (*PacketIntervalList) MoveBefore ¶
func (l *PacketIntervalList) MoveBefore(e, mark *PacketIntervalElement)
MoveBefore moves element e to its new position before mark. If e or mark is not an element of l, or e == mark, the list is not modified. The element and mark must not be nil.
func (*PacketIntervalList) MoveToBack ¶
func (l *PacketIntervalList) MoveToBack(e *PacketIntervalElement)
MoveToBack moves element e to the back of list l. If e is not an element of l, the list is not modified. The element must not be nil.
func (*PacketIntervalList) MoveToFront ¶
func (l *PacketIntervalList) MoveToFront(e *PacketIntervalElement)
MoveToFront moves element e to the front of list l. If e is not an element of l, the list is not modified. The element must not be nil.
func (*PacketIntervalList) PushBack ¶
func (l *PacketIntervalList) PushBack(v PacketInterval) *PacketIntervalElement
PushBack inserts a new element e with value v at the back of list l and returns e.
func (*PacketIntervalList) PushBackList ¶
func (l *PacketIntervalList) PushBackList(other *PacketIntervalList)
PushBackList inserts a copy of an other list at the back of list l. The lists l and other may be the same. They must not be nil.
func (*PacketIntervalList) PushFront ¶
func (l *PacketIntervalList) PushFront(v PacketInterval) *PacketIntervalElement
PushFront inserts a new element e with value v at the front of list l and returns e.
func (*PacketIntervalList) PushFrontList ¶
func (l *PacketIntervalList) PushFrontList(other *PacketIntervalList)
PushFrontList inserts a copy of an other list at the front of list l. The lists l and other may be the same. They must not be nil.
func (*PacketIntervalList) Remove ¶
func (l *PacketIntervalList) Remove(e *PacketIntervalElement) PacketInterval
Remove removes e from l if e is an element of list l. It returns the element value e.Value. The element must not be nil.