Documentation ¶
Index ¶
- type AsyncDispatcher
- type Dispatcher
- func (d *Dispatcher) Receive(ctx context.Context, ch chan<- interface{}, fn func(event interface{}) bool) (id SubscriberID)
- func (d *Dispatcher) RequestResponse(ctx context.Context, request TargetedRequest, responseType reflect.Type, ...) bool
- func (d *Dispatcher) Send(event interface{}, receivers ...SubscriberID)
- func (d *Dispatcher) Subscribe(fn SubscriberFn) (id SubscriberID)
- func (d *Dispatcher) Unsubscribe(id SubscriberID) bool
- type RequestTarget
- type ResponseTarget
- type SubscriberFn
- type SubscriberID
- type TargetedRequest
- type TargetedResponse
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) ResponseTarget ¶
func (e *RequestTarget) ResponseTarget() ResponseTarget
ResponseTarget func
func (*RequestTarget) SetReceiver ¶
func (e *RequestTarget) SetReceiver(ctx context.Context, receiver SubscriberID)
SetReceiver func
type SubscriberFn ¶
type SubscriberFn func(event interface{})
SubscriberFn function signature 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