Documentation
¶
Overview ¶
Package eventstream implements a publisher / subscriber.
Index ¶
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type EventStream ¶
func NewEventStream ¶
func NewEventStream() *EventStream
Create a new EventStream value and returns it back.
func (*EventStream) Length ¶
func (es *EventStream) Length() int32
Returns an integer that represents the current number of subscribers to the stream
func (*EventStream) Publish ¶
func (es *EventStream) Publish(evt interface{})
Publishes the given event to all the subscribers in the stream
func (*EventStream) Subscribe ¶
func (es *EventStream) Subscribe(handler Handler) *Subscription
Subscribe the given handler to the EventStream
Example ¶
Subscribe subscribes to events
package main
import (
"fmt"
"gitee.com/wujianhai/protoactor-go/eventstream"
)
func main() {
es := eventstream.NewEventStream()
handler := func(event interface{}) {
fmt.Println(event)
}
// only allow strings
predicate := func(event interface{}) bool {
_, ok := event.(string)
return ok
}
sub := es.SubscribeWithPredicate(handler, predicate)
es.Publish("Hello World")
es.Publish(1)
es.Unsubscribe(sub)
}
Output: Hello World
func (*EventStream) SubscribeWithPredicate ¶
func (es *EventStream) SubscribeWithPredicate(handler Handler, p Predicate) *Subscription
SubscribeWithPredicate creates a new Subscription value and sets a predicate to filter messages passed to the subscriber, it returns a pointer to the Subscription value
func (*EventStream) Unsubscribe ¶
func (es *EventStream) Unsubscribe(sub *Subscription)
Unsubscribes the given subscription from the EventStream
type Handler ¶
type Handler func(interface{})
Handler defines a callback function that must be pass when subscribing.
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 (*Subscription) Activate ¶
func (s *Subscription) Activate() bool
Activates the Subscription setting its active flag as 1, if the subscription was already active it returns false, true otherwise
func (*Subscription) Deactivate ¶
func (s *Subscription) Deactivate() bool
Deactivates the Subscription setting its active flag as 0, if the subscription was already inactive it returns false, true otherwise
func (*Subscription) IsActive ¶
func (s *Subscription) IsActive() bool
Returns true if the active flag of the Subscription is set as 1 otherwise it returns false