12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- package event
- import (
- "sync"
- "time"
- "github.com/mhaya/game/game_cluster/internal/mdb/eventmodels"
- mhayaLogger "github.com/mhaya/logger"
- )
- type EventManage struct {
- eventMap sync.Map
- }
- type Eventer interface {
- EventName() string
- }
- var (
- instance *EventManage
- once sync.Once
- _ Eventer = &eventmodels.UserRegisterEventContent{}
- _ Eventer = &eventmodels.UserLoginEventContent{}
- _ Eventer = &eventmodels.UserUpdateInfoEventContent{}
- _ Eventer = &eventmodels.UserWithdrawEventContent{}
- _ Eventer = &eventmodels.AssetsEventContent{}
- _ Eventer = &eventmodels.InviteEventContent{}
- _ Eventer = &eventmodels.DiceEventContent{}
- _ Eventer = &eventmodels.TurntableEventContent{}
- _ Eventer = &eventmodels.JoinChannelEventContent{}
- _ Eventer = &eventmodels.FollowEventContent{}
- _ Eventer = &eventmodels.TaskFinishEventContent{}
- _ Eventer = &eventmodels.ClickEventContent{}
- _ Eventer = &eventmodels.BackendOperationEventContent{}
- )
- func init() {
- once.Do(func() {
- instance = &EventManage{
- eventMap: sync.Map{},
- }
- })
- instance.AddEvent(new(eventmodels.UserRegisterEventContent))
- instance.AddEvent(new(eventmodels.UserLoginEventContent))
- instance.AddEvent(new(eventmodels.UserUpdateInfoEventContent))
- instance.AddEvent(new(eventmodels.UserWithdrawEventContent))
- instance.AddEvent(new(eventmodels.AssetsEventContent))
- instance.AddEvent(new(eventmodels.InviteEventContent))
- instance.AddEvent(new(eventmodels.DiceEventContent))
- instance.AddEvent(new(eventmodels.TurntableEventContent))
- instance.AddEvent(new(eventmodels.JoinChannelEventContent))
- instance.AddEvent(new(eventmodels.FollowEventContent))
- instance.AddEvent(new(eventmodels.TaskFinishEventContent))
- instance.AddEvent(new(eventmodels.ClickEventContent))
- instance.AddEvent(new(eventmodels.BackendOperationEventContent))
- }
- func GetEventIdMap() *EventManage {
- return instance
- }
- func (em *EventManage) AddEvent(e Eventer) {
- em.eventMap.Store(e.EventName(), e)
- }
- func (em *EventManage) GetEvent(eventName string) Eventer {
- value, exist := em.eventMap.Load(eventName)
- if !exist {
- return nil
- }
- return value.(Eventer)
- }
- func (em *EventManage) PrintAllEvent() {
- // 延迟1S 以便集中输出内容
- time.Sleep(time.Second)
- mhayaLogger.Info("-------------------EventList Begin------------------------------")
- em.eventMap.Range(func(key, value any) bool {
- mhayaLogger.Infof("[event name = %s]", key)
- mhayaLogger.Infof("[event content = %#v]", value)
- return true
- })
- mhayaLogger.Info("-------------------EventList End------------------------------")
- }
|