chrly/dispatcher/dispatcher.go

35 lines
608 B
Go
Raw Normal View History

2020-02-08 14:31:47 +03:00
package dispatcher
import "github.com/asaskevich/EventBus"
type Subscriber interface {
Subscribe(topic string, fn interface{})
}
type Emitter interface {
Emit(topic string, args ...interface{})
2020-02-08 14:31:47 +03:00
}
type Dispatcher interface {
Subscriber
Emitter
}
2020-04-16 19:42:38 +03:00
type localEventDispatcher struct {
2020-02-08 14:31:47 +03:00
bus EventBus.Bus
}
2020-04-16 19:42:38 +03:00
func (d *localEventDispatcher) Subscribe(topic string, fn interface{}) {
_ = d.bus.Subscribe(topic, fn)
2020-02-08 14:31:47 +03:00
}
2020-04-16 19:42:38 +03:00
func (d *localEventDispatcher) Emit(topic string, args ...interface{}) {
d.bus.Publish(topic, args...)
2020-02-08 14:31:47 +03:00
}
func New() Dispatcher {
2020-04-16 19:42:38 +03:00
return &localEventDispatcher{
2020-02-08 14:31:47 +03:00
bus: EventBus.New(),
}
}