dispatcher

package module
v1.4.0 Latest Latest
Warning

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

Go to latest
Published: May 19, 2020 License: MIT Imports: 6 Imported by: 1

README

dispatcher

codecov GoDoc

Dispatcher is the Go event dispatcher strategy pattern.

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrNotFound = errors.New("dispatcher: handler not found")
)

Errors

Functions

func Dispatch

func Dispatch(ctx context.Context, d Dispatcher, msg ...Message) error

Dispatch calls handler for given messages in sequence order, when a handler returns error, dispatch will stop and return that error

func DispatchAfter added in v1.0.5

func DispatchAfter(ctx context.Context, d Dispatcher, duration time.Duration, resultFn func(err error), msg ...Message)

DispatchAfter calls dispatch after given duration or run immediate if duration is negative, then call resultFn with return error

func DispatchAt added in v1.0.5

func DispatchAt(ctx context.Context, d Dispatcher, t time.Time, resultFn func(err error), msg ...Message)

DispatchAt calls dispatch at given time, and will run immediate if time already passed

func MessageName added in v1.1.0

func MessageName(msg Message) string

MessageName gets message name

func MessageNameFromHandler added in v1.1.0

func MessageNameFromHandler(h Handler) string

MessageNameFromHandler gets message name from handler

Types

type Dispatcher

type Dispatcher interface {
	Dispatch(context.Context, Message) error
}

Dispatcher is the event dispatcher

type HTTPHandlerWrapper added in v1.3.0

type HTTPHandlerWrapper struct {
	Dispatcher Dispatcher
	Decoder    func(r *http.Request, v interface{}) error
	Encoder    func(w http.ResponseWriter, r *http.Request, v interface{}) error
	Result     string
}

HTTPHandlerWrapper wraps dispatcher message to http handler

func (HTTPHandlerWrapper) Handler added in v1.3.0

func (wrapper HTTPHandlerWrapper) Handler(msg Message) http.Handler

Handler wraps message to http handler

type Handler

type Handler interface{}

Handler is the event handler

func(context.Context, *Any) error

type Message

type Message interface{}

Message is the event message

type Mux added in v1.2.0

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

Mux is the dispatch multiplexer

func NewMux added in v1.2.0

func NewMux() *Mux

NewMux creates new mux

func (*Mux) Dispatch added in v1.2.0

func (d *Mux) Dispatch(ctx context.Context, msg Message) error

Dispatch calls handler for given messages

func (*Mux) Handler added in v1.2.0

func (d *Mux) Handler(msg Message) Handler

Handler returns handler for given message

func (*Mux) Register added in v1.2.0

func (d *Mux) Register(hs ...Handler)

Register registers handlers, and override old handler if exists

Jump to

Keyboard shortcuts

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