1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- 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.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.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------------------------------")
- }
|