README ¶
events
import "github.com/tendermint/tendermint/libs/events"
Overview
Pub-Sub in go with event caching
Index
Package files
type EventCache
type EventCache struct {
// contains filtered or unexported fields
}
An EventCache buffers events for a Fireable All events are cached. Filtering happens on Flush
func NewEventCache
func NewEventCache(evsw Fireable) *EventCache
Create a new EventCache with an EventSwitch as backend
func (*EventCache) FireEvent
func (evc *EventCache) FireEvent(event string, data EventData)
Cache an event to be fired upon finality.
func (*EventCache) Flush
func (evc *EventCache) Flush()
Fire events by running evsw.FireEvent on all cached events. Blocks. Clears cached events
type EventCallback
type EventCallback func(data EventData)
type EventData
type EventData interface {
}
Generic event data can be typed and registered with tendermint/go-amino via concrete implementation of this interface
type EventSwitch
type EventSwitch interface {
cmn.Service
Fireable
AddListenerForEvent(listenerID, event string, cb EventCallback)
RemoveListenerForEvent(event string, listenerID string)
RemoveListener(listenerID string)
}
func NewEventSwitch
func NewEventSwitch() EventSwitch
type Eventable
type Eventable interface {
SetEventSwitch(evsw EventSwitch)
}
reactors and other modules should export this interface to become eventable
type Fireable
type Fireable interface {
FireEvent(event string, data EventData)
}
an event switch or cache implements fireable
Generated by godoc2md
Documentation ¶
Overview ¶
Package events - Pub-Sub in go with event caching
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ErrListenerWasRemoved ¶
type ErrListenerWasRemoved struct {
// contains filtered or unexported fields
}
ErrListenerWasRemoved is returned by AddEvent if the listener was removed.
func (ErrListenerWasRemoved) Error ¶
func (e ErrListenerWasRemoved) Error() string
Error implements the error interface.
type EventCache ¶
type EventCache struct {
// contains filtered or unexported fields
}
An EventCache buffers events for a Fireable All events are cached. Filtering happens on Flush
func NewEventCache ¶
func NewEventCache(evsw Fireable) *EventCache
Create a new EventCache with an EventSwitch as backend
func (*EventCache) FireEvent ¶
func (evc *EventCache) FireEvent(event string, data EventData)
Cache an event to be fired upon finality.
func (*EventCache) Flush ¶
func (evc *EventCache) Flush()
Fire events by running evsw.FireEvent on all cached events. Blocks. Clears cached events
type EventCallback ¶
type EventCallback func(data EventData)
type EventData ¶
type EventData interface{}
EventData is a generic event data can be typed and registered with tendermint/go-amino via concrete implementation of this interface.
type EventSwitch ¶
type EventSwitch interface { cmn.Service Fireable AddListenerForEvent(listenerID, event string, cb EventCallback) error RemoveListenerForEvent(event string, listenerID string) RemoveListener(listenerID string) }
EventSwitch is the interface for synchronous pubsub, where listeners subscribe to certain events and, when an event is fired (see Fireable), notified via a callback function.
Listeners are added by calling AddListenerForEvent function. They can be removed by calling either RemoveListenerForEvent or RemoveListener (for all events).
func NewEventSwitch ¶
func NewEventSwitch() EventSwitch
type Eventable ¶
type Eventable interface {
SetEventSwitch(evsw EventSwitch)
}
Eventable is the interface reactors and other modules must export to become eventable.