msgstore

package
v1.4.9 Latest Latest
Warning

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

Go to latest
Published: Sep 30, 2020 License: Apache-2.0 Imports: 3 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Noop

func Noop(_ interface{})

Noop is a function that doesn't do anything

Types

type MessageStore

type MessageStore interface {
	// add adds a message to the store
	// returns true or false whether the message was added to the store
	Add(msg interface{}) bool

	// Checks if message is valid for insertion to store
	// returns true or false whether the message can be added to the store
	CheckValid(msg interface{}) bool

	// size returns the amount of messages in the store
	Size() int

	// get returns all messages in the store
	Get() []interface{}

	// Stop all associated go routines
	Stop()

	// Purge purges all messages that are accepted by
	// the given predicate
	Purge(func(interface{}) bool)
}

MessageStore adds messages to an internal buffer. When a message is received, it might:

  • Be added to the buffer
  • Discarded because of some message already in the buffer (invalidated)
  • Make a message already in the buffer to be discarded (invalidates)

When a message is invalidated, the invalidationTrigger is invoked on that message.

func NewMessageStore

func NewMessageStore(pol common.MessageReplacingPolicy, trigger invalidationTrigger) MessageStore

NewMessageStore returns a new MessageStore with the message replacing policy and invalidation trigger passed.

func NewMessageStoreExpirable

func NewMessageStoreExpirable(pol common.MessageReplacingPolicy, trigger invalidationTrigger, msgTTL time.Duration, externalLock func(), externalUnlock func(), externalExpire func(interface{})) MessageStore

NewMessageStoreExpirable returns a new MessageStore with the message replacing policy and invalidation trigger passed. It supports old message expiration after msgTTL, during expiration first external lock taken, expiration callback invoked and external lock released. Callback and external lock can be nil.

Jump to

Keyboard shortcuts

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