eventemitter

package module
v1.1.1 Latest Latest
Warning

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

Go to latest
Published: Nov 8, 2019 License: MIT Imports: 2 Imported by: 5

README

Go Event Emitter Last release Documentation

Go Report Card

Branch Status Coverage
master Build Status Coveralls

go-eventemitter is the little and lightweight event emitter library for Go.

Example

package main

import "github.com/euskadi31/go-eventemitter"

func main() {
    emitter := eventemitter.New()

    emitter.Subscribe("test", func() {
        // code
    })

    emitter.Subscribe("count", func(i int) {
        // code
    })

    emitter.Dispatch("test")

    emitter.Dispatch("count", 42)

    emitter.Wait()
}

License

go-eventemitter is licensed under the MIT license.

Documentation

Overview

Package eventemitter provides tools that allow your application components to communicate with each other by dispatching events and listening to them.

Index

Examples

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Emitter added in v1.1.0

type Emitter struct {
	sync.RWMutex
	// contains filtered or unexported fields
}

Emitter struct

func New

func New() *Emitter

New EventEmitter

func (*Emitter) AddSubscriber added in v1.1.0

func (e *Emitter) AddSubscriber(subscriber EventSubscriber)

AddSubscriber adds an event subscriber.

Example
//see: example_test.go#L30 for userSubscriber

emitter := eventemitter.New()

// Subscribe user.created event
emitter.AddSubscriber(&userSubscriber{})

// Dispatch user.created event with user id
emitter.Dispatch("user.created", 1234)

// wait for all listeners to be executed
emitter.Wait()
Output:

func (*Emitter) Dispatch added in v1.1.0

func (e *Emitter) Dispatch(name string, args ...interface{})

Dispatch an event to all registered listeners.

func (*Emitter) RemoveSubscriber added in v1.1.0

func (e *Emitter) RemoveSubscriber(subscriber EventSubscriber)

RemoveSubscriber removes an event subscriber.

func (*Emitter) Subscribe added in v1.1.0

func (e *Emitter) Subscribe(name string, listener interface{})

Subscribe adds an event listener that listens on the specified events.

Example
emitter := eventemitter.New()

// Subscribe user.created event
emitter.Subscribe("user.created", func(id int) {
	fmt.Printf("UserID: %d\n", id)
})

// Dispatch user.created event with user id
emitter.Dispatch("user.created", 1234)

// wait for all listeners to be executed
emitter.Wait()
Output:

func (*Emitter) Unsubscribe added in v1.1.0

func (e *Emitter) Unsubscribe(name string, listener interface{})

Unsubscribe removes an event listener from the specified events.

func (*Emitter) Wait added in v1.1.0

func (e *Emitter) Wait()

Wait all listeners

type EventEmitter

type EventEmitter interface {
	Subscribe(name string, listener interface{})

	Unsubscribe(name string, listener interface{})

	Dispatch(name string, args ...interface{})

	AddSubscriber(subscriber EventSubscriber)

	RemoveSubscriber(subscriber EventSubscriber)

	Wait()
}

EventEmitter interface

type EventSubscriber added in v1.1.0

type EventSubscriber interface {
	SubscribedEvents() map[string][]interface{}
}

EventSubscriber knows himself what events he is interested in. If an EventSubscriber is added to an EventDispatcherInterface, the manager invokes {@link SubscribedEvents} and registers the subscriber as a listener for all returned events.

Jump to

Keyboard shortcuts

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