Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
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.
Click to show internal directories.
Click to hide internal directories.