Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package eventSourcing
- type config struct {
- listeners map[string][]Listener
- }
- func (c *config) addListener(listener Listener, event EventName) {
- c.listeners = make(map[string][]Listener)
- n := append(c.listeners[event.Name()], listener)
- c.listeners[event.Name()] = n
- }
- func (c *config) getListeners(event EventName) []Listener {
- return c.listeners[event.Name()]
- }
- type Listener interface {
- Handle(event EventName)
- }
- func handle(event chan EventName) {
- en := <-event
- go func() {
- c := &config
- list := c.getListeners(en)
- for _, l := range list {
- l.Handle(en)
- }
- }()
- //switch en.Name() {
- //case "peer.installed":
- // go func() {
- // j, err := json.Marshal(en)
- //
- // if err != nil {
- // panic(err)
- // }
- // ioutil.WriteFile("/tmp/peer_installed.txt", j, 0644)
- // }()
- //}
- }
- func DeclareListener(listener Listener, event EventName) {
- c := config{}
- c.addListener(listener, event)
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement