event

package
v1.1.13 Latest Latest
Warning

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

Go to latest
Published: May 29, 2025 License: MIT Imports: 5 Imported by: 0

Documentation

Index

Constants

View Source
const (
	PriorityHigh   int = 100
	PriorityNormal int = 0
	PriorityLow    int = -100
)

定义监听器优先级常量

View Source
const (
	// ManagerService 事件管理器服务名称
	ManagerService = "event.manager"
	// DispatcherService 事件分发器服务名称
	DispatcherService = "event.dispatcher"
)

Variables

View Source
var (
	// ErrListenerAlreadyRegistered 监听器已注册错误
	ErrListenerAlreadyRegistered = errors.New("监听器已经被注册")

	// ErrEventNotSupported 事件不支持错误
	ErrEventNotSupported = errors.New("事件类型不受支持")
)
View Source
var (
	// ErrDispatcherNotFound 分发器未找到错误
	ErrDispatcherNotFound = errors.New("事件分发器未找到")
)

Functions

This section is empty.

Types

type AsyncEventListener

type AsyncEventListener struct {
	BaseEventListener
	// contains filtered or unexported fields
}

AsyncEventListener 异步事件监听器

func NewAsyncListener

func NewAsyncListener(handler func(event Event) error, events []string, priority int, async bool) *AsyncEventListener

NewAsyncListener 创建新的异步事件监听器

func (*AsyncEventListener) IsAsync

func (l *AsyncEventListener) IsAsync() bool

IsAsync 检查监听器是否为异步

type AsyncListener

type AsyncListener interface {
	Listener

	// ShouldProcess 检查是否应该异步处理
	ShouldProcess() bool
}

AsyncListener 异步事件监听器接口

func NewAsyncListenerFunc

func NewAsyncListenerFunc(handler func(event Event) error, async bool) AsyncListener

NewAsyncListenerFunc 创建异步函数监听器

type AsyncListenerFunc

type AsyncListenerFunc struct {
	ListenerFunc
	// contains filtered or unexported fields
}

AsyncListenerFunc 异步函数类型的监听器

func (*AsyncListenerFunc) ShouldProcess

func (f *AsyncListenerFunc) ShouldProcess() bool

ShouldProcess 实现 AsyncListener 接口

type BaseEvent

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

BaseEvent 基础事件实现

func NewBaseEvent

func NewBaseEvent(name string) *BaseEvent

NewBaseEvent 创建基础事件

func (*BaseEvent) GetContext

func (e *BaseEvent) GetContext() interface{}

GetContext 获取事件上下文

func (*BaseEvent) GetName

func (e *BaseEvent) GetName() string

GetName 获取事件名称

func (*BaseEvent) GetPayload

func (e *BaseEvent) GetPayload() map[string]interface{}

GetPayload 获取事件负载

func (*BaseEvent) GetPayloadValue

func (e *BaseEvent) GetPayloadValue(key string) (interface{}, bool)

GetPayloadValue 获取特定的负载值

func (*BaseEvent) GetTimestamp

func (e *BaseEvent) GetTimestamp() time.Time

GetTimestamp 获取事件时间戳

func (*BaseEvent) IsPropagationStopped

func (e *BaseEvent) IsPropagationStopped() bool

IsPropagationStopped 事件传播是否已停止

func (*BaseEvent) SetContext

func (e *BaseEvent) SetContext(ctx interface{})

SetContext 设置事件上下文

func (*BaseEvent) SetPayload

func (e *BaseEvent) SetPayload(payload map[string]interface{})

SetPayload 设置事件负载

func (*BaseEvent) SetPayloadValue

func (e *BaseEvent) SetPayloadValue(key string, value interface{})

SetPayloadValue 设置特定的负载值

func (*BaseEvent) StopPropagation

func (e *BaseEvent) StopPropagation()

StopPropagation 停止事件传播

type BaseEventListener

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

BaseEventListener 基础事件监听器实现

func NewEventListener

func NewEventListener(handler func(event Event) error, events []string, priority int) *BaseEventListener

NewEventListener 创建新的事件监听器

func (*BaseEventListener) GetEvents

func (l *BaseEventListener) GetEvents() []string

GetEvents 获取监听器关注的事件列表

func (*BaseEventListener) GetPriority

func (l *BaseEventListener) GetPriority() int

GetPriority 获取监听器优先级

func (*BaseEventListener) Handle

func (l *BaseEventListener) Handle(event Event) error

Handle 实现事件处理方法

type BaseListener

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

BaseListener 基础监听器实现

func NewAsyncBaseListener

func NewAsyncBaseListener(handler func(event Event) error) *BaseListener

NewAsyncBaseListener 创建一个新的异步基础监听器

func NewBaseListener

func NewBaseListener(handler func(event Event) error) *BaseListener

NewBaseListener 创建一个新的基础监听器

func (*BaseListener) Handle

func (l *BaseListener) Handle(event Event) error

Handle 处理事件

func (*BaseListener) ShouldHandle

func (l *BaseListener) ShouldHandle(event Event) bool

ShouldHandle 检查是否应该处理此事件

func (*BaseListener) ShouldProcess

func (l *BaseListener) ShouldProcess() bool

ShouldProcess 检查是否应异步处理

func (*BaseListener) WithAsync

func (l *BaseListener) WithAsync(async bool) *BaseListener

WithAsync 设置是否异步处理

func (*BaseListener) WithFilter

func (l *BaseListener) WithFilter(filter func(event Event) bool) *BaseListener

WithFilter 设置过滤器

type BaseSubscriber

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

BaseSubscriber 基础事件订阅者实现

func NewSubscriber

func NewSubscriber() *BaseSubscriber

NewSubscriber 创建一个新的基础订阅者

func (*BaseSubscriber) Listen

func (s *BaseSubscriber) Listen(eventName string, listener Listener) *BaseSubscriber

Listen 添加事件和对应的监听器

func (*BaseSubscriber) ListenAsync

func (s *BaseSubscriber) ListenAsync(eventName string, handler func(event Event) error) *BaseSubscriber

ListenAsync 添加事件和对应的异步处理器

func (*BaseSubscriber) ListenFunc

func (s *BaseSubscriber) ListenFunc(eventName string, handler func(event Event) error) *BaseSubscriber

ListenFunc 添加事件和对应的函数处理器

func (*BaseSubscriber) Subscribe

func (s *BaseSubscriber) Subscribe() EventMap

Subscribe 实现 EventSubscriber 接口

type Dispatcher

type Dispatcher interface {
	// Dispatch 分发事件
	Dispatch(event Event) error
	// DispatchAsync 异步分发事件
	DispatchAsync(event Event) error
	// AddListener 添加事件监听器
	AddListener(eventName string, listener Listener) error
	// AddListenerFunc 添加函数形式的事件监听器
	AddListenerFunc(eventName string, listenerFunc func(event Event) error) error
	// RemoveListener 移除事件监听器
	RemoveListener(eventName string, listener Listener) error
	// GetListeners 获取指定事件的所有监听器
	GetListeners(eventName string) []Listener
	// HasListeners 检查事件是否有监听器
	HasListeners(eventName string) bool
}

Dispatcher 事件分发器接口

type Event

type Event interface {
	// GetName 获取事件名称
	GetName() string
	// GetTimestamp 获取事件时间戳
	GetTimestamp() time.Time
	// GetPayload 获取事件负载数据
	GetPayload() map[string]interface{}
	// SetPayload 设置事件负载数据
	SetPayload(payload map[string]interface{})
	// GetPayloadValue 获取特定的负载值
	GetPayloadValue(key string) (interface{}, bool)
	// SetPayloadValue 设置特定的负载值
	SetPayloadValue(key string, value interface{})
	// GetContext 获取事件上下文
	GetContext() interface{}
	// SetContext 设置事件上下文
	SetContext(ctx interface{})
	// IsPropagationStopped 事件传播是否已停止
	IsPropagationStopped() bool
	// StopPropagation 停止事件传播
	StopPropagation()
}

Event 事件接口

type EventDispatcher

type EventDispatcher interface {
	// Dispatch 分发事件
	Dispatch(event Event) error
	// Listen 添加事件监听器
	Listen(eventName string, listener EventListener)
	// HasListeners 检查事件是否有监听器
	HasListeners(eventName string) bool
	// GetListeners 获取指定事件的所有监听器
	GetListeners(eventName string) []EventListener
	// RemoveListener 移除监听器
	RemoveListener(listener EventListener)
}

EventDispatcher 事件分发器接口

type EventListener

type EventListener interface {
	// Handle 处理事件
	Handle(event Event) error
	// GetEvents 获取该监听器关注的事件列表
	GetEvents() []string
	// GetPriority 获取监听器优先级
	GetPriority() int
}

EventListener 事件监听器接口

type EventMap

type EventMap map[string][]Listener

EventMap 事件到监听器的映射类型

type EventProvider

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

EventProvider 事件系统服务提供者

func NewEventProvider

func NewEventProvider(container *di.Container) *EventProvider

NewEventProvider 创建事件服务提供者

func (*EventProvider) Boot

func (p *EventProvider) Boot() error

Boot 引导事件系统

func (*EventProvider) Name

func (p *EventProvider) Name() string

Name 获取提供者名称

func (*EventProvider) Priority

func (p *EventProvider) Priority() int

Priority 获取提供者优先级

func (*EventProvider) Register

func (p *EventProvider) Register() error

Register 注册事件系统服务

type EventSubscriber

type EventSubscriber interface {
	// Subscribe 返回事件到监听器的映射
	Subscribe() EventMap
}

EventSubscriber 事件订阅者接口

type Listener

type Listener interface {
	// Handle 处理事件
	Handle(event Event) error

	// ShouldHandle 检查是否应该处理此事件
	ShouldHandle(event Event) bool
}

Listener 事件监听器接口

type ListenerFunc

type ListenerFunc func(event Event) error

ListenerFunc 函数类型的监听器

func (ListenerFunc) Handle

func (f ListenerFunc) Handle(event Event) error

Handle 实现 Listener 接口

func (ListenerFunc) ShouldHandle

func (f ListenerFunc) ShouldHandle(event Event) bool

ShouldHandle 实现 Listener 接口

type ListenerManager

type ListenerManager interface {
	// AddListener 添加监听器
	AddListener(listener EventListener)
	// RemoveListener 移除监听器
	RemoveListener(listener EventListener)
	// GetListeners 获取指定事件的所有监听器
	GetListeners(eventName string) []EventListener
	// HasListeners 检查是否有监听器关注指定事件
	HasListeners(eventName string) bool
}

ListenerManager 监听器管理器接口

type Manager

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

Manager 事件管理器

func NewManager

func NewManager() *Manager

NewManager 创建新的事件管理器

func (*Manager) AddListener

func (m *Manager) AddListener(eventName string, listener Listener) error

AddListener 添加事件监听器到默认分发器

func (*Manager) AddListenerFunc

func (m *Manager) AddListenerFunc(eventName string, listenerFunc func(event Event) error) error

AddListenerFunc 添加函数形式的事件监听器到默认分发器

func (*Manager) Dispatch

func (m *Manager) Dispatch(event Event) error

Dispatch 通过默认分发器派发事件

func (*Manager) DispatchAsync

func (m *Manager) DispatchAsync(event Event) error

DispatchAsync 通过默认分发器异步派发事件

func (*Manager) DispatchNamed

func (m *Manager) DispatchNamed(name string, event Event) error

DispatchNamed 通过指定名称的分发器派发事件

func (*Manager) GetDefaultDispatcher

func (m *Manager) GetDefaultDispatcher() Dispatcher

GetDefaultDispatcher 获取默认分发器

func (*Manager) GetDispatcher

func (m *Manager) GetDispatcher(name string) (Dispatcher, error)

GetDispatcher 获取指定名称的分发器

func (*Manager) GetListeners

func (m *Manager) GetListeners(eventName string) []Listener

GetListeners 获取默认分发器中指定事件的所有监听器

func (*Manager) HasListeners

func (m *Manager) HasListeners(eventName string) bool

HasListeners 检查默认分发器中事件是否有监听器

func (*Manager) Register

func (m *Manager) Register(name string, dispatcher Dispatcher)

Register 注册事件分发器

func (*Manager) RegisterSubscriber

func (m *Manager) RegisterSubscriber(subscriber EventSubscriber) error

RegisterSubscriber 注册事件订阅者

func (*Manager) RegisterSubscriberToDispatcher

func (m *Manager) RegisterSubscriberToDispatcher(dispatcherName string, subscriber EventSubscriber) error

RegisterSubscriberToDispatcher 注册事件订阅者到指定分发器

func (*Manager) RemoveListener

func (m *Manager) RemoveListener(eventName string, listener Listener) error

RemoveListener 从默认分发器移除事件监听器

func (*Manager) SetDefaultDispatcher

func (m *Manager) SetDefaultDispatcher(name string) error

SetDefaultDispatcher 设置默认分发器

type StandardDispatcher

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

StandardDispatcher 标准分发器实现,实现 Dispatcher 接口

func NewDispatcher

func NewDispatcher(maxQueue int) *StandardDispatcher

NewDispatcher 创建新的标准分发器

func (*StandardDispatcher) AddListener

func (d *StandardDispatcher) AddListener(eventName string, listener Listener) error

AddListener 添加事件监听器

func (*StandardDispatcher) AddListenerFunc

func (d *StandardDispatcher) AddListenerFunc(eventName string, listenerFunc func(event Event) error) error

AddListenerFunc 添加函数形式的事件监听器

func (*StandardDispatcher) Dispatch

func (d *StandardDispatcher) Dispatch(event Event) error

Dispatch 分发事件

func (*StandardDispatcher) DispatchAsync

func (d *StandardDispatcher) DispatchAsync(event Event) error

DispatchAsync 异步分发事件

func (*StandardDispatcher) GetListeners

func (d *StandardDispatcher) GetListeners(eventName string) []Listener

GetListeners 获取指定事件的所有监听器

func (*StandardDispatcher) HasListeners

func (d *StandardDispatcher) HasListeners(eventName string) bool

HasListeners 检查事件是否有监听器

func (*StandardDispatcher) RemoveListener

func (d *StandardDispatcher) RemoveListener(eventName string, listener Listener) error

RemoveListener 移除事件监听器

func (*StandardDispatcher) Stop

func (d *StandardDispatcher) Stop()

Stop 停止异步事件处理

type StandardEventDispatcher

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

StandardEventDispatcher 标准事件分发器实现

func NewEventDispatcher

func NewEventDispatcher() *StandardEventDispatcher

NewEventDispatcher 创建新的事件分发器

func (*StandardEventDispatcher) Dispatch

func (d *StandardEventDispatcher) Dispatch(event Event) error

Dispatch 分发事件

func (*StandardEventDispatcher) DispatchSync

func (d *StandardEventDispatcher) DispatchSync(event Event) error

DispatchSync 同步分发事件,等待所有异步监听器完成

func (*StandardEventDispatcher) GetListeners

func (d *StandardEventDispatcher) GetListeners(eventName string) []EventListener

GetListeners 获取指定事件的所有监听器

func (*StandardEventDispatcher) HasListeners

func (d *StandardEventDispatcher) HasListeners(eventName string) bool

HasListeners 检查事件是否有监听器

func (*StandardEventDispatcher) Listen

func (d *StandardEventDispatcher) Listen(eventName string, listener EventListener)

Listen 添加事件监听器

func (*StandardEventDispatcher) RemoveListener

func (d *StandardEventDispatcher) RemoveListener(listener EventListener)

RemoveListener 移除监听器

type StandardListenerManager

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

StandardListenerManager 标准监听器管理器实现

func NewListenerManager

func NewListenerManager() *StandardListenerManager

NewListenerManager 创建新的监听器管理器

func (*StandardListenerManager) AddListener

func (m *StandardListenerManager) AddListener(listener EventListener)

AddListener 添加监听器

func (*StandardListenerManager) GetListeners

func (m *StandardListenerManager) GetListeners(eventName string) []EventListener

GetListeners 获取指定事件的所有监听器

func (*StandardListenerManager) HasListeners

func (m *StandardListenerManager) HasListeners(eventName string) bool

HasListeners 检查是否有监听器关注指定事件

func (*StandardListenerManager) RemoveListener

func (m *StandardListenerManager) RemoveListener(listener EventListener)

RemoveListener 移除监听器

Jump to

Keyboard shortcuts

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