package utils

import (
	"github.com/zjxpcyc/tinyevent"
)

var evtBus = &tinyevent.DefaultBus{}

// EmitEvent 执行事件
func EmitEvent(evt string, payload interface{}) {
	e := tinyevent.Event{
		Name:    evt,
		Payload: payload,
	}

	evtBus.Emit(e)
}

// ListenEvent 注册监听
func ListenEvent(evt string, act tinyevent.Action) string {
	return evtBus.On(evt, act)
}

// UnListenEvt 取消监听
func UnListenEvt(id string) {
	evtBus.Off(id)
}

// ResetEvtBus 重置一个事件中控中心
func ResetEvtBus() {
	evtBus = &tinyevent.DefaultBus{}
}
