Documentation ¶
Overview ¶
Package localevent 高效的本地事件系统,只适用于单线程环境。
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func UnbindEvent ¶
UnbindEvent 解绑定事件与订阅者,比使用事件绑定句柄解绑定性能差,且在同个订阅者多次绑定事件的情况下,只能从最后依次解除,无法指定解除哪一个
func UnsafeEvent ¶
func UnsafeEvent(v IEvent) _UnsafeEvent
Types ¶
type Event ¶
type Event struct {
// contains filtered or unexported fields
}
Event 本地事件,非线程安全,不能用于跨线程事件通知
type EventRecursion ¶
type EventRecursion int32
EventRecursion 发生事件递归的处理方式,事件递归是指在一个事件的订阅者中再次发送这个事件
const ( EventRecursion_Allow EventRecursion = iota // 允许事件递归,但是可能会造成无限递归 EventRecursion_Disallow // 不允许事件递归,发生时会panic EventRecursion_NotEmit // 不再发送事件,如果在订阅者中再次发送这个事件,那么不会再发送给任何订阅者 EventRecursion_Discard // 丢弃递归的事件,如果在订阅者中再次发送这个事件,那么不会再次进入这个订阅者,但是会进入其他订阅者 EventRecursion_Deepest // 深度优先处理递归事件,如果在订阅者中再次发送这个事件,那么会中断上次事件发送过程,并在本次事件发送过程中,不会再次进入这个订阅者 )
type Hook ¶
type Hook struct {
// contains filtered or unexported fields
}
Hook 事件绑定句柄,主要用于重新绑定或解除绑定事件,由BindEvent()或BindEventWithPriority()创建并返回,请勿自己创建
func BindEventWithPriority ¶
BindEventWithPriority 绑定事件与订阅者,可以设置优先级调整回调先后顺序,按优先级升序排列
func (*Hook) BindWithPriority ¶
BindWithPriority 重新绑定事件与订阅者,可以设置优先级调整回调先后顺序,按优先级升序排列
type IEvent ¶
type IEvent interface {
// contains filtered or unexported methods
}
IEvent 本地事件接口,非线程安全,不能用于跨线程事件通知
type IEventTab ¶
type IEventTab interface { // Init 初始化事件表 Init(autoRecover bool, reportError chan error, hookCache *container.Cache[Hook], gcCollector container.GCCollector) // Get 获取事件 Get(id int) IEvent // Open 打开事件表中所有事件 Open() // Close 关闭事件表中所有事件 Close() // Clean 事件表中的所有事件清除全部订阅者 Clean() }
IEventTab 本地事件表接口,我们可以把一些事件定义在同一个源码文件中,使用事件代码生成器的生成事件表功能,自动生成事件表
Click to show internal directories.
Click to hide internal directories.