README

events

import "github.com/tendermint/tendermint/libs/events"

Overview

Pub-Sub in go with event caching

Index

Package files

event_cache.go events.go

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

Expand ▾ Collapse ▴

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, 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.

                      type Fireable

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

                        Fireable is the interface that wraps the FireEvent method.

                        FireEvent fires an event with the given name and data.