events

package
v0.0.0-...-ad0604f Latest Latest
Warning

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

Go to latest
Published: Feb 25, 2023 License: Apache-2.0 Imports: 4 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type AsyncDispatcher

type AsyncDispatcher struct {
	Dispatcher
	// contains filtered or unexported fields
}

AsyncDispatcher extends event Dispatcher to support asyncronous Send (in separate gorutine)

func NewAsyncDispatcher

func NewAsyncDispatcher(maxSenders int) *AsyncDispatcher

NewAsyncDispatcher creates and initializes new asyncronous event Dispatcher The maxSenders parameter defines maximal number of goroutines used to send events (if <= 0 then 1 goroutine will be used)

func (*AsyncDispatcher) Close

func (d *AsyncDispatcher) Close()

Close releases resources used by asyncronous event Dispatcher

func (*AsyncDispatcher) SendAsync

func (d *AsyncDispatcher) SendAsync(event interface{}, receivers ...SubscriberID)

SendAsync sends event asyncronously, in a separate goroutine.

type Dispatcher

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

Dispatcher - event dispatcher struct

func (*Dispatcher) Receive

func (d *Dispatcher) Receive(ctx context.Context, ch chan<- interface{}, fn func(event interface{}) bool) (id SubscriberID)

Receive func

func (*Dispatcher) RequestResponse

func (d *Dispatcher) RequestResponse(ctx context.Context, request TargetedRequest, responseType reflect.Type, receiveFn func(interface{})) bool

RequestResponse func

func (*Dispatcher) Send

func (d *Dispatcher) Send(event interface{}, receivers ...SubscriberID)

Send func

func (*Dispatcher) Subscribe

func (d *Dispatcher) Subscribe(fn SubscriberFn) (id SubscriberID)

Subscribe func

func (*Dispatcher) Unsubscribe

func (d *Dispatcher) Unsubscribe(id SubscriberID) bool

Unsubscribe func

type RequestTarget

type RequestTarget struct {
	ReceiverID SubscriberID
	Ctx        context.Context
}

RequestTarget struct

func (*RequestTarget) Context

func (e *RequestTarget) Context() context.Context

Context func

func (*RequestTarget) ResponseTarget

func (e *RequestTarget) ResponseTarget() ResponseTarget

ResponseTarget func

func (*RequestTarget) SetReceiver

func (e *RequestTarget) SetReceiver(ctx context.Context, receiver SubscriberID)

SetReceiver func

type ResponseTarget

type ResponseTarget struct {
	ReceiverID SubscriberID
}

ResponseTarget struct

func (*ResponseTarget) Receiver

func (e *ResponseTarget) Receiver() SubscriberID

Receiver func

type SubscriberFn

type SubscriberFn func(event interface{})

SubscriberFn function signature for the subscriber

type SubscriberID

type SubscriberID uint64

SubscriberID identifier type for the subscriber

type TargetedRequest

type TargetedRequest interface {
	SetReceiver(ctx context.Context, receiver SubscriberID)
	Context() context.Context
}

TargetedRequest interface

type TargetedResponse

type TargetedResponse interface {
	Receiver() SubscriberID
}

TargetedResponse interface

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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