event

package
v1.0.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 26, 2018 License: BSD-2-Clause Imports: 3 Imported by: 27

Documentation

Overview

Merge multiple incoming events into one, and fan out to subscribers

Publish, Subscribe and Emit package for gopi.Publisher interface

Index

Constants

This section is empty.

Variables

View Source
var (
	NullEvent = &nullEvent{}
)

Functions

This section is empty.

Types

type EventMerger

type EventMerger interface {
	gopi.Publisher

	// Add a channel for merging
	Add(<-chan gopi.Event)

	// Close the event merger
	Close()
}

EventMerger represents a way to merge events and subscribe the emitted events

func NewEventMerger

func NewEventMerger(channels ...<-chan gopi.Event) EventMerger

Create an event merger object and start listening on incoming channels

type Merger

type Merger struct {
	sync.Mutex
	Publisher
	// contains filtered or unexported fields
}

func (*Merger) Close

func (this *Merger) Close()

func (*Merger) Merge

func (this *Merger) Merge(publisher gopi.Publisher)

func (*Merger) Unmerge

func (this *Merger) Unmerge(publisher gopi.Publisher)

type PubSub

type PubSub struct {
	// contains filtered or unexported fields
}

func NewPubSub

func NewPubSub(capacity int) *PubSub

func (*PubSub) Close

func (this *PubSub) Close()

func (*PubSub) Emit

func (this *PubSub) Emit(evt gopi.Event)

func (*PubSub) Subscribe

func (this *PubSub) Subscribe() <-chan gopi.Event

func (*PubSub) Unsubscribe

func (this *PubSub) Unsubscribe(subscriber <-chan gopi.Event)

type Publisher

type Publisher struct {
	sync.Mutex
	// contains filtered or unexported fields
}

func (*Publisher) Close

func (this *Publisher) Close()

Close will unsubscribe all remaining channels

func (*Publisher) Emit

func (this *Publisher) Emit(evt gopi.Event)

Emit an event onto all subscriber channels, this method will block if the subscribers are not processing incoming events

func (*Publisher) Subscribe

func (this *Publisher) Subscribe() <-chan gopi.Event

Subscribe returns a new channel on which emitting events can occur

func (*Publisher) Unsubscribe

func (this *Publisher) Unsubscribe(subscriber <-chan gopi.Event)

Unsubscribe closes a channel and removes it from the list of channels which emitting can happen on

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL