edis

package module
v0.0.0-...-51bcf00 Latest Latest
Warning

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

Go to latest
Published: Sep 4, 2020 License: MIT Imports: 5 Imported by: 5

README

go-edis

Go Lang Simples Event Dispatcher API and Implemetation

Installation

go get -u github.com/moisespsena-go/edis

Usage

package main

import (
	"fmt"
	"strings"

	"github.com/moisespsena-go/edis"
)

func main() {
	pad := func(v string) string {
		return v + strings.Repeat(" ", 11-len(v))
	}
	ed := edis.New()
	ed.On("*", func(e edis.EventInterface) error {
		fmt.Println(pad("0 -> *"), e)
		return nil
	})
	ed.On("event", func(e edis.EventInterface) error {
		fmt.Println(pad("1 -> event"), e)
		return nil
	})
	ed.On("a:*", func(e edis.EventInterface) error {
		fmt.Println(pad("2 -> a:*"), e)
		return nil
	})
	ed.On("a:b:*", func(e edis.EventInterface) error {
		fmt.Println(pad("3 -> a:b:*"), e)
		return nil
	})
	ed.On("a:b:c", func(e edis.EventInterface) error {
		fmt.Println(pad("4 -> a:b:c"), e)
		return nil
	})

	trigger := func() {
		ed.Trigger(edis.NewEvent("event", "data"))
		ed.Trigger(edis.NewEvent("a:b:c", "abc"))
	}

	fmt.Println("----- any trigger disabled -----")
	trigger()
	
	fmt.Println("----- any trigger enabled -----")
	ed.EnableAnyTrigger()
	trigger()
}

Result:

----- any trigger disabled -----
1 -> event  Event{Name="event", CurrentName="event", data=data}
4 -> a:b:c  Event{Name="a:b:c", CurrentName="a:b:c", data=abc}
----- any trigger enabled -----
0 -> *      Event{Name="event", CurrentName="*", data=data}
1 -> event  Event{Name="event", CurrentName="event", data=data}
0 -> *      Event{Name="a:b:c", CurrentName="*", data=abc}
2 -> a:*    Event{Name="a:b:c", CurrentName="a:*", data=abc}
3 -> a:b:*  Event{Name="a:b:c", CurrentName="a:b:*", data=abc}
4 -> a:b:c  Event{Name="a:b:c", CurrentName="a:b:c", data=abc}

Documentation

Index

Constants

This section is empty.

Variables

View Source
var PREFIX = path_helpers.GetCalledDir()

Functions

func DefaultEventDebug

func DefaultEventDebug(dis EventDispatcherInterface, key string, e EventInterface)

func EAll

func EAll(name string) string

Types

type Callback

type Callback interface {
	Call(e EventInterface) error
}

func SimpleCallback

func SimpleCallback(f func()) Callback

func SimpleCallbackE

func SimpleCallbackE(f func() error) Callback

type CallbackFunc

type CallbackFunc func(e EventInterface)

func (CallbackFunc) Call

func (c CallbackFunc) Call(e EventInterface) error

type CallbackFuncE

type CallbackFuncE func(e EventInterface) error

func (CallbackFuncE) Call

type Event

type Event struct {
	PName        string
	PData        interface{}
	PResult      interface{}
	PError       error
	PCurrentName string
	PDispatcher  EventDispatcherInterface
	// contains filtered or unexported fields
}

func NewEvent

func NewEvent(name string, data ...interface{}) *Event

func (*Event) Data

func (d *Event) Data() interface{}

func (*Event) Dispatcher

func (d *Event) Dispatcher() EventDispatcherInterface

func (*Event) Error

func (d *Event) Error() error

func (*Event) Name

func (d *Event) Name() string

func (*Event) Names

func (e *Event) Names() []string

func (*Event) Result

func (d *Event) Result() interface{}

func (*Event) SetData

func (d *Event) SetData(value interface{})

func (*Event) SetDispatcher

func (d *Event) SetDispatcher(dis EventDispatcherInterface)

func (*Event) SetError

func (d *Event) SetError(err error)

func (*Event) SetResult

func (d *Event) SetResult(value interface{})

func (*Event) String

func (e *Event) String() string

func (*Event) With

func (e *Event) With(name string) (done func())

func (*Event) WithDispatcher

func (e *Event) WithDispatcher(dis EventDispatcherInterface) (done func())

type EventDispatcher

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

func New

func New() *EventDispatcher

func (*EventDispatcher) AllListeners

func (ed *EventDispatcher) AllListeners() map[string][]Callback

func (*EventDispatcher) DisableAnyTrigger

func (ed *EventDispatcher) DisableAnyTrigger()

func (*EventDispatcher) DisableDebug

func (ed *EventDispatcher) DisableDebug()

func (*EventDispatcher) Dispatcher

func (ed *EventDispatcher) Dispatcher() EventDispatcherInterface

func (*EventDispatcher) EnableAnyTrigger

func (ed *EventDispatcher) EnableAnyTrigger()

func (*EventDispatcher) EnableDebug

func (ed *EventDispatcher) EnableDebug()

func (*EventDispatcher) GetDefinedDispatcher

func (ed *EventDispatcher) GetDefinedDispatcher() EventDispatcherInterface

func (*EventDispatcher) IsAnyTrigger

func (ed *EventDispatcher) IsAnyTrigger() bool

func (*EventDispatcher) IsDebugEnabled

func (ed *EventDispatcher) IsDebugEnabled() bool

func (*EventDispatcher) Listeners

func (ed *EventDispatcher) Listeners(key string) (lis []Callback, ok bool)

func (*EventDispatcher) Logger

func (ed *EventDispatcher) Logger() logging.Logger

func (*EventDispatcher) On

func (ed *EventDispatcher) On(eventName string, callbacks ...interface{})

func (*EventDispatcher) OnE

func (ed *EventDispatcher) OnE(eventName string, callbacks ...interface{}) error

func (*EventDispatcher) SetAnyTrigger

func (ed *EventDispatcher) SetAnyTrigger(v bool)

func (*EventDispatcher) SetDebug

func (ed *EventDispatcher) SetDebug(v bool)

func (*EventDispatcher) SetDispatcher

func (ed *EventDispatcher) SetDispatcher(dis EventDispatcherInterface)

func (*EventDispatcher) SetLogger

func (ed *EventDispatcher) SetLogger(log logging.Logger)

func (*EventDispatcher) Trigger

func (ed *EventDispatcher) Trigger(e EventInterface) (err error)

type EventDispatcherInterface

type EventDispatcherInterface interface {
	On(eventName string, callbacks ...interface{})
	OnE(eventName string, callbacks ...interface{}) error
	Trigger(e EventInterface) error
	IsAnyTrigger() bool
	SetAnyTrigger(v bool)
	EnableAnyTrigger()
	DisableAnyTrigger()
	Listeners(key string) (lis []Callback, ok bool)
	AllListeners() map[string][]Callback
	SetLogger(log logging.Logger)
	Logger() logging.Logger
	SetDebug(v bool)
	IsDebugEnabled() bool
	EnableDebug()
	DisableDebug()
	Dispatcher() EventDispatcherInterface
	SetDispatcher(dis EventDispatcherInterface)
}

type EventInterface

type EventInterface interface {
	Name() string
	Names() []string
	SetData(value interface{})
	Data() interface{}
	SetResult(value interface{})
	Result() interface{}
	SetError(err error)
	Error() error
	Dispatcher() EventDispatcherInterface
	SetDispatcher(dis EventDispatcherInterface)
	With(name string) (done func())
	WithDispatcher(dis EventDispatcherInterface) (done func())
}

Jump to

Keyboard shortcuts

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