goevent

package module
v0.0.1 Latest Latest
Warning

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

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

README

事件发布及监听

使用示例

    pub := goevent.NewLocalPublisher(16)
    //1、注册监听
	pub.RegisterListener("TestEvent", goevent.FuncListener(func(event *goevent.Event) error {
		fmt.Println("received: ", event)
		return nil
	}))
    //2、发布事件
    pub.Publish("TestEvent", fmt.Sprintf("TestEvent body: %d", 1))

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type ChanListenerRegistrar

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

ChanListenerRegistrar 注册listener,监听eventChan中的事件

func NewChanListenerRegistrar

func NewChanListenerRegistrar(eventChan chan *Event) *ChanListenerRegistrar

NewChanListenerRegistrar 注册listener,监听eventChan中的事件

func (*ChanListenerRegistrar) Done

func (lr *ChanListenerRegistrar) Done() (listenDone <-chan struct{})

func (*ChanListenerRegistrar) RegisterListener

func (lr *ChanListenerRegistrar) RegisterListener(eventName string, listeners ...Listener)

func (*ChanListenerRegistrar) StartListen

func (lr *ChanListenerRegistrar) StartListen()

type Event

type Event struct {
	Name      string
	Payload   any
	EventTime time.Time
}

func (*Event) String

func (event *Event) String() string

type FuncListener

type FuncListener func(event *Event) error

FuncListener 监听事件

func (FuncListener) Listen

func (f FuncListener) Listen(event *Event) error

type Listener

type Listener interface {
	Listen(event *Event) error
}

Listener 监听事件

type ListenerRegistrar

type ListenerRegistrar interface {
	RegisterListener(eventName string, listeners ...Listener)
	StartListen()
	// Done 是否执行完所有事件
	Done() (listenDone <-chan struct{})
}

ListenerRegistrar 注册并监听

type LocalPublisher

type LocalPublisher struct {
	ListenerRegistrar
	// contains filtered or unexported fields
}

LocalPublisher 发布事件到event chan,支持注册listener和发布事件

func NewLocalPublisher

func NewLocalPublisher(eventBufferSize int) *LocalPublisher

NewLocalPublisher 发布事件到event chan,支持注册listener和发布事件

func (*LocalPublisher) Close

func (p *LocalPublisher) Close()

func (*LocalPublisher) Publish

func (p *LocalPublisher) Publish(eventName string, payload any) error

type Publisher

type Publisher interface {
	Publish(eventName string, payload any) error
}

Publisher 发布事件

Jump to

Keyboard shortcuts

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