Documentation
¶
Index ¶
- Constants
- Variables
- type AsyncEventListener
- type AsyncListener
- type AsyncListenerFunc
- type BaseEvent
- func (e *BaseEvent) GetContext() interface{}
- func (e *BaseEvent) GetName() string
- func (e *BaseEvent) GetPayload() map[string]interface{}
- func (e *BaseEvent) GetPayloadValue(key string) (interface{}, bool)
- func (e *BaseEvent) GetTimestamp() time.Time
- func (e *BaseEvent) IsPropagationStopped() bool
- func (e *BaseEvent) SetContext(ctx interface{})
- func (e *BaseEvent) SetPayload(payload map[string]interface{})
- func (e *BaseEvent) SetPayloadValue(key string, value interface{})
- func (e *BaseEvent) StopPropagation()
- type BaseEventListener
- type BaseListener
- type BaseSubscriber
- func (s *BaseSubscriber) Listen(eventName string, listener Listener) *BaseSubscriber
- func (s *BaseSubscriber) ListenAsync(eventName string, handler func(event Event) error) *BaseSubscriber
- func (s *BaseSubscriber) ListenFunc(eventName string, handler func(event Event) error) *BaseSubscriber
- func (s *BaseSubscriber) Subscribe() EventMap
- type Dispatcher
- type Event
- type EventDispatcher
- type EventListener
- type EventMap
- type EventProvider
- type EventSubscriber
- type Listener
- type ListenerFunc
- type ListenerManager
- type Manager
- func (m *Manager) AddListener(eventName string, listener Listener) error
- func (m *Manager) AddListenerFunc(eventName string, listenerFunc func(event Event) error) error
- func (m *Manager) Dispatch(event Event) error
- func (m *Manager) DispatchAsync(event Event) error
- func (m *Manager) DispatchNamed(name string, event Event) error
- func (m *Manager) GetDefaultDispatcher() Dispatcher
- func (m *Manager) GetDispatcher(name string) (Dispatcher, error)
- func (m *Manager) GetListeners(eventName string) []Listener
- func (m *Manager) HasListeners(eventName string) bool
- func (m *Manager) Register(name string, dispatcher Dispatcher)
- func (m *Manager) RegisterSubscriber(subscriber EventSubscriber) error
- func (m *Manager) RegisterSubscriberToDispatcher(dispatcherName string, subscriber EventSubscriber) error
- func (m *Manager) RemoveListener(eventName string, listener Listener) error
- func (m *Manager) SetDefaultDispatcher(name string) error
- type StandardDispatcher
- func (d *StandardDispatcher) AddListener(eventName string, listener Listener) error
- func (d *StandardDispatcher) AddListenerFunc(eventName string, listenerFunc func(event Event) error) error
- func (d *StandardDispatcher) Dispatch(event Event) error
- func (d *StandardDispatcher) DispatchAsync(event Event) error
- func (d *StandardDispatcher) GetListeners(eventName string) []Listener
- func (d *StandardDispatcher) HasListeners(eventName string) bool
- func (d *StandardDispatcher) RemoveListener(eventName string, listener Listener) error
- func (d *StandardDispatcher) Stop()
- type StandardEventDispatcher
- func (d *StandardEventDispatcher) Dispatch(event Event) error
- func (d *StandardEventDispatcher) DispatchSync(event Event) error
- func (d *StandardEventDispatcher) GetListeners(eventName string) []EventListener
- func (d *StandardEventDispatcher) HasListeners(eventName string) bool
- func (d *StandardEventDispatcher) Listen(eventName string, listener EventListener)
- func (d *StandardEventDispatcher) RemoveListener(listener EventListener)
- type StandardListenerManager
Constants ¶
const ( PriorityHigh int = 100 PriorityNormal int = 0 PriorityLow int = -100 )
定义监听器优先级常量
const ( // ManagerService 事件管理器服务名称 ManagerService = "event.manager" // DispatcherService 事件分发器服务名称 DispatcherService = "event.dispatcher" )
Variables ¶
var ( // ErrListenerAlreadyRegistered 监听器已注册错误 ErrListenerAlreadyRegistered = errors.New("监听器已经被注册") // ErrEventNotSupported 事件不支持错误 ErrEventNotSupported = errors.New("事件类型不受支持") )
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 创建新的异步事件监听器
type AsyncListener ¶
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 (*BaseEvent) GetPayload ¶
GetPayload 获取事件负载
func (*BaseEvent) GetPayloadValue ¶
GetPayloadValue 获取特定的负载值
func (*BaseEvent) IsPropagationStopped ¶
IsPropagationStopped 事件传播是否已停止
func (*BaseEvent) SetPayload ¶
SetPayload 设置事件负载
func (*BaseEvent) SetPayloadValue ¶
SetPayloadValue 设置特定的负载值
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) 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 (*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 EventProvider ¶
type EventProvider struct {
// contains filtered or unexported fields
}
EventProvider 事件系统服务提供者
func NewEventProvider ¶
func NewEventProvider(container *di.Container) *EventProvider
NewEventProvider 创建事件服务提供者
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 ¶
ListenerFunc 函数类型的监听器
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 (*Manager) AddListener ¶
AddListener 添加事件监听器到默认分发器
func (*Manager) AddListenerFunc ¶
AddListenerFunc 添加函数形式的事件监听器到默认分发器
func (*Manager) DispatchAsync ¶
DispatchAsync 通过默认分发器异步派发事件
func (*Manager) DispatchNamed ¶
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 ¶
GetListeners 获取默认分发器中指定事件的所有监听器
func (*Manager) HasListeners ¶
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 ¶
RemoveListener 从默认分发器移除事件监听器
func (*Manager) SetDefaultDispatcher ¶
SetDefaultDispatcher 设置默认分发器
type StandardDispatcher ¶
type StandardDispatcher struct {
// contains filtered or unexported fields
}
StandardDispatcher 标准分发器实现,实现 Dispatcher 接口
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 移除事件监听器
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 移除监听器