mirror of https://github.com/vacp2p/dasy.git
21 lines
500 B
Go
21 lines
500 B
Go
|
package event
|
||
|
|
||
|
type Subscription chan <-Payload
|
||
|
|
||
|
type Feed struct {
|
||
|
subscribers []Subscription
|
||
|
}
|
||
|
|
||
|
// Subscribe adds a channel to the feed.
|
||
|
func (f *Feed) Subscribe(channel Subscription) { // @todo think about returning a subscription like prysm
|
||
|
f.subscribers = append(f.subscribers, channel)
|
||
|
}
|
||
|
|
||
|
// Send sends a payload to all the subscribers for the specific feed.
|
||
|
func (f *Feed) Send(value Payload) {
|
||
|
// @todo is this good enough for now?
|
||
|
for _, sub := range f.subscribers {
|
||
|
sub <- value
|
||
|
}
|
||
|
}
|