pulsenet

package
v0.0.0-...-36a93ca Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 27, 2025 License: AGPL-3.0 Imports: 5 Imported by: 0

Documentation

Index

Constants

View Source
const (
	FlagReliable             = 1
	FlagAck                  = 2
	FlagSplit                = 4
	FlagMissingChunksRequest = 8
)
View Source
const MaxUDPPayload = 1200

Variables

View Source
var ServerMetrics = &Metrics{StartTime: time.Now()}

Functions

This section is empty.

Types

type BitReader

type BitReader struct {
	// contains filtered or unexported fields
}

func NewBitReader

func NewBitReader(data []byte) *BitReader

func (*BitReader) ReadBits

func (r *BitReader) ReadBits(bits int) uint64

type BitWriter

type BitWriter struct {
	// contains filtered or unexported fields
}

func NewBitWriter

func NewBitWriter() *BitWriter

func (*BitWriter) Bytes

func (w *BitWriter) Bytes() []byte

func (*BitWriter) WriteBits

func (w *BitWriter) WriteBits(val uint64, bits int)

type Metrics

type Metrics struct {
	TotalPackets   uint64
	TotalBytes     uint64
	ReliableRx     uint64
	ReliableSends  uint64
	ReliableAcks   uint64
	DroppedClients uint64

	StartTime time.Time
	// contains filtered or unexported fields
}

func (*Metrics) AddDrop

func (m *Metrics) AddDrop()

func (*Metrics) AddPacket

func (m *Metrics) AddPacket(bytes int)

func (*Metrics) AddReliableAck

func (m *Metrics) AddReliableAck()

func (*Metrics) AddReliableRx

func (m *Metrics) AddReliableRx()

func (*Metrics) AddReliableSend

func (m *Metrics) AddReliableSend()

func (*Metrics) Snapshot

func (m *Metrics) Snapshot() Metrics

type ReliableChannel

type ReliableChannel struct {
	Outbox       map[uint16]*ReliableMessage
	LastAcked    uint16
	NextSequence uint16
}

func NewReliableChannel

func NewReliableChannel() *ReliableChannel

func (*ReliableChannel) MarkAcked

func (c *ReliableChannel) MarkAcked(seq uint16)

func (*ReliableChannel) QueueReliable

func (c *ReliableChannel) QueueReliable(data []byte) (full []byte, seq uint16)

func (*ReliableChannel) RetryExpired

func (c *ReliableChannel) RetryExpired(sendFunc func([]byte))

type ReliableMessage

type ReliableMessage struct {
	Sequence uint16
	Data     []byte
	SentAt   time.Time
	Retries  int
}

type UDPServer

type UDPServer struct {
	Conn *net.UDPConn
}

func NewUDPServer

func NewUDPServer(port int) (*UDPServer, error)

func (*UDPServer) Close

func (s *UDPServer) Close() error

func (*UDPServer) ReadPacket

func (s *UDPServer) ReadPacket(buffer []byte) (n int, addr *net.UDPAddr, err error)

func (*UDPServer) SendPacket

func (s *UDPServer) SendPacket(addr *net.UDPAddr, data []byte) error

Source Files

  • bitstream.go
  • metrics.go
  • reliable.go
  • udp.go

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL