12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- package utils
-
- import (
- "github.com/zjxpcyc/tinyevent"
- )
-
- // EventEngine Event Engine
- type EventEngine struct {
- ID string
- engine *tinyevent.DefaultBus
- }
-
- var evtBus map[string]*EventEngine
-
- // EventEngineBus 初始化实例
- func EventEngineBus(id string) *EventEngine {
- if evtBus == nil {
- evtBus = make(map[string]*EventEngine)
- }
-
- if id == "" {
- return nil
- }
-
- if evtBus[id] == nil {
- evtEngine := &EventEngine{
- ID: id,
- engine: new(tinyevent.DefaultBus),
- }
-
- evtBus[id] = evtEngine
- }
-
- return evtBus[id]
- }
-
- // ResetEventEngineBus 重设事件管理引擎
- func ResetEventEngineBus(id string) *EventEngine {
- if id == "" {
- return nil
- }
-
- if evtBus == nil {
- evtBus = make(map[string]*EventEngine)
- }
-
- evtEngine := &EventEngine{
- ID: id,
- engine: new(tinyevent.DefaultBus),
- }
-
- evtBus[id] = evtEngine
- return evtEngine
- }
-
- // EmitEvent 执行事件
- func (t EventEngine) EmitEvent(evt string, payload interface{}) {
- e := tinyevent.Event{
- Name: evt,
- Payload: payload,
- }
-
- t.engine.Emit(e)
- }
-
- // ListenEvent 注册监听
- func (t EventEngine) ListenEvent(evt string, act tinyevent.Action) string {
- return t.engine.On(evt, act)
- }
-
- // UnListenEvt 取消监听
- func (t EventEngine) UnListenEvt(id string) {
- t.engine.Off(id)
- }
-
- // EngineIDBy 获取 Engine Id
- func EngineIDBy(orgID, caseID string) string {
- return orgID + caseID
- }
|