messagebuffer

package
v2.2.0 Latest Latest
Warning

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

Go to latest
Published: Mar 3, 2023 License: Apache-2.0 Imports: 9 Imported by: 0

Documentation

Index

Constants

View Source
const MonitorInterval = 10 // seconds

Variables

This section is empty.

Functions

This section is empty.

Types

type MessageBuffer

type MessageBuffer struct {
	sync.Mutex
	// contains filtered or unexported fields
}

MessageBuffer is the buffer to hold message for clients not online here use several locks, must use locks in the same order to avoid dead lock. the order should be: msgMu -> createMu -> expireMu

func NewMessageBuffer

func NewMessageBuffer(startBufferMonitor bool) *MessageBuffer

NewMessageBuffer creates a MessageBuffer

func (*MessageBuffer) AddMessage

func (msgBuf *MessageBuffer) AddMessage(clientID []byte, msg *pb.Relay) *msgNode

AddMessage adds a message to message buffer

func (*MessageBuffer) BufferMonitor added in v2.2.0

func (msgBuf *MessageBuffer) BufferMonitor()

monitor message buffer usage, and remove expired message .

func (*MessageBuffer) ClearAll added in v2.2.0

func (msgBuf *MessageBuffer) ClearAll()

clear all cached msg and index

func (*MessageBuffer) GetClientMsgSize added in v2.2.0

func (msgBuf *MessageBuffer) GetClientMsgSize(clientID []byte) int

get one clientId's msg size

func (*MessageBuffer) PopMessages

func (msgBuf *MessageBuffer) PopMessages(clientID []byte) []*pb.Relay

PopMessages reads and clears all messages of a client

Jump to

Keyboard shortcuts

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