events

package
v0.35.9 Latest Latest
Warning

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

Go to latest
Published: Jul 20, 2022 License: Apache-2.0 Imports: 3 Imported by: 154

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 {
	service.Service
	Fireable

	AddListenerForEvent(listenerID, eventValue 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.

type Fireable

type Fireable interface {
	FireEvent(eventValue string, data EventData)
}

Fireable is the interface that wraps the FireEvent method.

FireEvent fires an event with the given name and data.

Jump to

Keyboard shortcuts

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