Documentation ¶
Index ¶
- Constants
- func AbsDuration(d time.Duration) time.Duration
- func Debug() bool
- func Debugf(format string, args ...interface{})
- func Errorf(format string, args ...interface{})
- func GenerateConnectionID() (protocol.ConnectionID, error)
- func HostnameFromAddr(addr string) (string, error)
- func Infof(format string, args ...interface{})
- func Max(a, b int) int
- 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 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 SetLogLevel(level LogLevel)
- func SetLogTimeFormat(format string)
- 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 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 GenerateConnectionID ¶
func GenerateConnectionID() (protocol.ConnectionID, error)
GenerateConnectionID generates a connection ID using cryptographic random
func HostnameFromAddr ¶
HostnameFromAddr determines the hostname in an address string
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 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 SetLogTimeFormat ¶
func SetLogTimeFormat(format string)
SetLogTimeFormat sets the format of the timestamp an empty string disables the logging of timestamps
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 +gen linkedlist
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 represents a doubly linked list. The zero value for ByteIntervalList is an empty list ready to use.
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.
func (*ByteIntervalList) Front ¶
func (l *ByteIntervalList) Front() *ByteIntervalElement
Front returns the first element of list l or nil.
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.
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.
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 is not an element of l, or e == mark, the list is not modified.
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.
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.
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.
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.
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.
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.
type ByteOrder ¶
type ByteOrder interface { ReadUintN(b io.ByteReader, length uint8) (uint64, error) ReadUint64(io.ByteReader) (uint64, error) ReadUint32(io.ByteReader) (uint32, error) ReadUint16(io.ByteReader) (uint16, error) WriteUint64(*bytes.Buffer, uint64) WriteUint56(*bytes.Buffer, uint64) WriteUint48(*bytes.Buffer, uint64) WriteUint40(*bytes.Buffer, uint64) WriteUint32(*bytes.Buffer, uint32) WriteUint24(*bytes.Buffer, uint32) WriteUint16(*bytes.Buffer, uint16) ReadUfloat16(io.ByteReader) (uint64, error) WriteUfloat16(*bytes.Buffer, uint64) }
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.
var LittleEndian ByteOrder = littleEndian{}
LittleEndian is the little-endian implementation of ByteOrder.
type PacketInterval ¶
type PacketInterval struct { Start protocol.PacketNumber End protocol.PacketNumber }
PacketInterval is an interval from one PacketNumber to the other +gen linkedlist
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 represents a doubly linked list. The zero value for PacketIntervalList is an empty list ready to use.
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.
func (*PacketIntervalList) Front ¶
func (l *PacketIntervalList) Front() *PacketIntervalElement
Front returns the first element of list l or nil.
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.
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.
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 is not an element of l, or e == mark, the list is not modified.
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.
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.
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.
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.
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.
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.