Documentation ¶
Index ¶
- Variables
- func Broadcast(event Event, handlers map[Listener]struct{}) (err error)
- func ParallelBroadcast(event Event, handlers map[Listener]struct{}) error
- func ParallelBroadcastWithReturning(event Event, handlers map[Listener]struct{}) error
- type DispatchStrategy
- type Dispatcher
- type Dispatcherer
- type Emitter
- func (emitter *Emitter) AddEventListener(handler Listener, events ...string)
- func (emitter *Emitter) AddEventListeners(event string, handlers ...Listener)
- func (emitter *Emitter) EventNames() []string
- func (emitter *Emitter) Fire(data interface{}) (err error)
- func (emitter *Emitter) FireByName(name string, options ...EventOption) error
- func (emitter *Emitter) FireByNameWithMap(name string, data Map) error
- func (emitter *Emitter) HasEvent(event string) bool
- func (emitter *Emitter) Off(event string) Emitterer
- func (emitter *Emitter) On(event string, handlers ...Listener) Emitterer
- func (emitter *Emitter) RemoveEventListener(handler Listener)
- func (emitter *Emitter) RemoveEventListeners(event string)
- type EmitterOption
- type Emitterer
- type Event
- type EventOption
- type ID
- type Listener
- type Map
- type PeriodicEmitter
- type Stream
- type Streamer
Constants ¶
This section is empty.
Variables ¶
var Default = NewEmitter()
Functions ¶
func ParallelBroadcast ¶ added in v1.3.0
ParallelBroadcast calls event handlers in separate goroutines
func ParallelBroadcastWithReturning ¶ added in v1.3.0
ParallelBroadcastWithReturning calls event handlers in separate goroutines
Types ¶
type DispatchStrategy ¶ added in v1.3.0
DispatchStrategy defines strategy of delivery event to handlers
type Dispatcher ¶
type Dispatcher struct {
// contains filtered or unexported fields
}
Dispatcher stores event listeners of concrete event
func NewDispatcher ¶ added in v1.3.0
func NewDispatcher(strategy DispatchStrategy) *Dispatcher
NewDispatcher creates new dispatcher
func (*Dispatcher) AddSubscriber ¶ added in v1.3.0
func (dispatcher *Dispatcher) AddSubscriber(handler Listener)
AddSubscriber adds one listener
func (*Dispatcher) AddSubscribers ¶
func (dispatcher *Dispatcher) AddSubscribers(handlers []Listener)
AddSubscribers adds slice of listeners
func (*Dispatcher) Dispatch ¶
func (dispatcher *Dispatcher) Dispatch(event Event) error
Dispatch deliver event to listeners using strategy
func (*Dispatcher) RemoveSubscriber ¶ added in v1.3.0
func (dispatcher *Dispatcher) RemoveSubscriber(handler Listener)
RemoveSubscriber removes listener
type Dispatcherer ¶ added in v1.3.0
type Emitter ¶
type Emitter struct {
// contains filtered or unexported fields
}
Emitter
func NewEmitter ¶ added in v1.3.0
func NewEmitter(options ...EmitterOption) *Emitter
NewEmitter creates new event emitter
func (*Emitter) AddEventListener ¶ added in v1.3.0
AddEventListener subscribes listeners to provided events
func (*Emitter) AddEventListeners ¶ added in v1.3.0
AddEventListeners subscribes listeners to provided event
func (*Emitter) EventNames ¶ added in v1.3.1
EventNames ...
func (*Emitter) FireByName ¶ added in v1.3.2
func (emitter *Emitter) FireByName(name string, options ...EventOption) error
func (*Emitter) FireByNameWithMap ¶ added in v1.3.2
func (*Emitter) On ¶
On subscribes listeners to provided event and return emitter usefull for chain subscriptions
func (*Emitter) RemoveEventListener ¶ added in v1.3.0
RemoveEventListener unsubscribe provided listener from all events
func (*Emitter) RemoveEventListeners ¶ added in v1.3.0
RemoveEventListeners unsubscribe all listeners from provided event
type EmitterOption ¶ added in v1.3.0
type EmitterOption struct {
// contains filtered or unexported fields
}
EmitterOption defines option for Emitter
func WithDefaultStrategy ¶ added in v1.3.0
func WithDefaultStrategy(strategy DispatchStrategy) EmitterOption
WithDefaultStrategy sets default delivery strategy for event emitter
func WithEventStategy ¶ added in v1.3.0
func WithEventStategy(event string, strategy DispatchStrategy) EmitterOption
WithEventStategy sets delivery strategy for provided event
type Emitterer ¶ added in v1.3.0
type Emitterer interface { On(string, ...Listener) Emitterer AddEventListener(handler Listener, events ...string) Off(string) Emitterer RemoveEventListener(handler Listener) Fire(interface{}) error FireByName(name string, options ...EventOption) error FireByNameWithMap(name string, data Map) error EventNames() []string HasEvent(string) bool }
type Event ¶
Event
func New ¶
func New(data interface{}, options ...EventOption) Event
New create new event with provided name and options
type EventOption ¶ added in v1.3.0
type EventOption struct {
// contains filtered or unexported fields
}
EventOption for event
func WithContext ¶ added in v1.3.0
func WithContext(context Map) EventOption
WithContext sets event metadata
type Listener ¶
Listener defines event handler interface
type PeriodicEmitter ¶ added in v1.3.0
type PeriodicEmitter struct { *Emitter // contains filtered or unexported fields }
PeriodicEmitter is a source of periodic events
func NewTicker ¶ added in v1.3.0
func NewTicker(emitter *Emitter) *PeriodicEmitter
NewTicker creates new PeriodicEmitter
func (*PeriodicEmitter) RegisterEvent ¶ added in v1.3.0
func (emitter *PeriodicEmitter) RegisterEvent(event string, period interface{}, handlers ...Listener)
RegisterEvent registers new periodic event
func (*PeriodicEmitter) RemoveEvent ¶ added in v1.3.0
func (emitter *PeriodicEmitter) RemoveEvent(event string)
RemoveEvent removes provided event
func (*PeriodicEmitter) Stop ¶ added in v1.3.0
func (emitter *PeriodicEmitter) Stop()