internal

package
v1.0.2 Latest Latest
Warning

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

Go to latest
Published: Dec 16, 2022 License: Apache-2.0 Imports: 14 Imported by: 0

Documentation

Index

Constants

View Source
const MaxResendNum = 1000
View Source
const PingTimeInterval = 30 * time.Second

Variables

View Source
var ErrTooManyRetries = fmt.Errorf("too many unacknowledged retries")

Functions

func NewReadWriter

func NewReadWriter(pipe *utils.Pipeline[[]byte], sender func([]byte) error) io.ReadWriteCloser

Types

type AckReceiver

type AckReceiver func(messageType string, ackedMsgId uuid.UUID, ackedSequenceNumber int64)

type ErrorCallbackFunc

type ErrorCallbackFunc func(err error)

type Receiver

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

func NewReceiver

func NewReceiver(conn WsConn, onErrorCallback ErrorCallbackFunc,
	acks AckReceiver, logger *log.GimletLogger, stats *log.Stats) *Receiver

func (*Receiver) ControlReaderQueue

func (r *Receiver) ControlReaderQueue() *utils.Pipeline[*mgsproto.ClientMessage]

func (*Receiver) DataReaderQueue

func (r *Receiver) DataReaderQueue() *utils.Pipeline[[]byte]

func (*Receiver) Shutdown

func (r *Receiver) Shutdown()

type Sender

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

func NewSender

func NewSender(conn WsConn, onErrorCallback ErrorCallbackFunc, maxPps uint64, resendTimeout time.Duration,
	log *log.GimletLogger, stats *log.Stats) *Sender

func (*Sender) AckReceived

func (s *Sender) AckReceived(seqId int64)

func (*Sender) EnqueueAck

func (s *Sender) EnqueueAck(messageType string, ackedMsgId uuid.UUID, ackedSequenceNumber int64)

func (*Sender) EnqueueChannelOpen

func (s *Sender) EnqueueChannelOpen(token string)

func (*Sender) EnqueueControlFlag

func (s *Sender) EnqueueControlFlag(flagType mgsproto.FlagMessage) error

func (*Sender) EnqueueData

func (s *Sender) EnqueueData(data []byte) error

func (*Sender) SerializeAndEnqueueControl

func (s *Sender) SerializeAndEnqueueControl(msgType mgsproto.PayloadType, data any) error

func (*Sender) Shutdown

func (s *Sender) Shutdown()

Shutdown shuts down the sender. Intra-class callers needs to make sure it's not called while `Sender.mtx` is held.

type WsConn

type WsConn interface {
	SetReadDeadline(t time.Time) error
	SetWriteDeadline(t time.Time) error
	ReadMessage() (messageType int, p []byte, err error)
	WriteMessage(messageType int, data []byte) error
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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