Documentation ¶
Overview ¶
Package eventstream implements a publisher / subscriber.
Index ¶
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func Unsubscribe ¶
func Unsubscribe(sub *Subscription)
Types ¶
type EventStream ¶
func (*EventStream) Publish ¶
func (ps *EventStream) Publish(evt interface{})
func (*EventStream) Subscribe ¶
func (es *EventStream) Subscribe(fn func(evt interface{})) *Subscription
func (*EventStream) Unsubscribe ¶
func (ps *EventStream) Unsubscribe(sub *Subscription)
type Predicate ¶
type Predicate func(evt interface{}) bool
Predicate is a function used to filter messages before being forwarded to a subscriber
type Subscription ¶
type Subscription struct {
// contains filtered or unexported fields
}
Subscription is returned from the Subscribe function.
This value and can be passed to Unsubscribe when the observer is no longer interested in receiving messages
func Subscribe ¶
func Subscribe(fn func(evt interface{})) *Subscription
Example ¶
Subscribe subscribes to events
package main import ( "fmt" "github.com/meycoin/meey-protoactor/eventstream" ) func main() { sub := eventstream.Subscribe(func(event interface{}) { fmt.Println(event) }) // only allow strings sub.WithPredicate(func(evt interface{}) bool { _, ok := evt.(string) return ok }) eventstream.Publish("Hello World") eventstream.Publish(1) eventstream.Unsubscribe(sub) }
Output: Hello World
func (*Subscription) WithPredicate ¶
func (s *Subscription) WithPredicate(p Predicate) *Subscription
WithPredicate sets a predicate to filter messages passed to the subscriber
Click to show internal directories.
Click to hide internal directories.