| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- package ackhandler
- import (
- "time"
- "v2ray.com/core/external/github.com/lucas-clemente/quic-go/internal/protocol"
- "v2ray.com/core/external/github.com/lucas-clemente/quic-go/internal/wire"
- )
- // SentPacketHandler handles ACKs received for outgoing packets
- type SentPacketHandler interface {
- // SentPacket may modify the packet
- SentPacket(packet *Packet)
- SentPacketsAsRetransmission(packets []*Packet, retransmissionOf protocol.PacketNumber)
- ReceivedAck(ackFrame *wire.AckFrame, withPacketNumber protocol.PacketNumber, encLevel protocol.EncryptionLevel, recvTime time.Time) error
- SetHandshakeComplete()
- // The SendMode determines if and what kind of packets can be sent.
- SendMode() SendMode
- // TimeUntilSend is the time when the next packet should be sent.
- // It is used for pacing packets.
- TimeUntilSend() time.Time
- // ShouldSendNumPackets returns the number of packets that should be sent immediately.
- // It always returns a number greater or equal than 1.
- // A number greater than 1 is returned when the pacing delay is smaller than the minimum pacing delay.
- // Note that the number of packets is only calculated based on the pacing algorithm.
- // Before sending any packet, SendingAllowed() must be called to learn if we can actually send it.
- ShouldSendNumPackets() int
- // only to be called once the handshake is complete
- GetLowestPacketNotConfirmedAcked() protocol.PacketNumber
- DequeuePacketForRetransmission() *Packet
- DequeueProbePacket() (*Packet, error)
- PeekPacketNumber() (protocol.PacketNumber, protocol.PacketNumberLen)
- PopPacketNumber() protocol.PacketNumber
- GetAlarmTimeout() time.Time
- OnAlarm() error
- }
- // ReceivedPacketHandler handles ACKs needed to send for incoming packets
- type ReceivedPacketHandler interface {
- ReceivedPacket(pn protocol.PacketNumber, encLevel protocol.EncryptionLevel, rcvTime time.Time, shouldInstigateAck bool) error
- IgnoreBelow(protocol.PacketNumber)
- GetAlarmTimeout() time.Time
- GetAckFrame(protocol.EncryptionLevel) *wire.AckFrame
- }
|