event

package
v0.0.23 Latest Latest
Warning

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

Go to latest
Published: Mar 4, 2024 License: MIT Imports: 8 Imported by: 0

Documentation

Index

Constants

View Source
const (
	ListenerAdded   = "listener_added"
	ListenerRemoved = "listener_removed"
)

internal listener events

View Source
const (
	SubscriberAdded   = "subscriber_added"
	SubscriberRemoved = "subscriber_removed"
)

internal subscription events

Variables

This section is empty.

Functions

This section is empty.

Types

type Dispatcher

type Dispatcher interface {
	Emitter
	Registry
}

Dispatcher abstraction for event dispatchers

func NewDispatcher

func NewDispatcher(logger logger.FormatLogger) Dispatcher

NewDispatcher returns a new instance of event.Dispatcher

type Emitter added in v0.0.4

type Emitter interface {
	Emit(eventName string, event Event) error
}

Emitter abstraction for event emitters

type ErrorFn added in v0.0.2

type ErrorFn = func(err error) (stopPropagation bool)

ErrorFn handle errors

type Event

type Event interface {
	Context() context.Context
	Payload() interface{}
	StopPropagation()
	PropagationStopped() bool
}

Event generic event type alias

func DefaultEvent added in v0.0.5

func DefaultEvent(ctx context.Context, payload interface{}) Event

DefaultEvent return a new Event

func ListenerEvent added in v0.0.5

func ListenerEvent(ctx context.Context, id, eventName string, priority int, listener Listener) Event

ListenerEvent return a new event.Event

func SubscriberEvent added in v0.0.5

func SubscriberEvent(ctx context.Context, id string, subscriber Subscriber) Event

SubscriberEvent return a new event.Event

type Listener

type Listener = func(name string, event Event) error

Listener generic listener type alias

type Registry added in v0.0.5

type Registry interface {
	AddListener(eventName string, listener Listener) string
	AddListenerWithPriority(eventName string, listener Listener, priority int) string
	AddSubscriber(subscriber Subscriber) string
	RemoveListener(listenerID string)
	RemoveSubscriber(subscriberID string)
}

Registry abstraction for event registries

type Subscriber

type Subscriber interface {
	GetSubscriptions() []Subscription
}

Subscriber abstraction for event subscribers

type Subscription

type Subscription interface {
	GetEventName() string
	GetPriority() int
	GetListener() Listener
}

Subscription abstraction for event subscriptions

func NewSubscription

func NewSubscription(eventName string, listener Listener) Subscription

NewSubscription return a new instance of Subscription

func NewSubscriptionWithPriority

func NewSubscriptionWithPriority(eventName string, listener Listener, priority int) Subscription

NewSubscriptionWithPriority return a new instance of Subscription with priority

Jump to

Keyboard shortcuts

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