game_sync/gamesrv/base/platform.go

46 lines
894 B
Go

package base
import (
"mongo.games.com/game/protocol/webapi"
"mongo.games.com/goserver/core/logger"
)
var PlatformConfigSingleton = &PlatformConfigMgr{
Platforms: make(map[string]*PlatformConfig),
}
type PlatformConfig struct {
PlayerPool *webapi.PlayerPool
GameConfig *webapi.GameConfig
}
type PlatformConfigMgr struct {
Platforms map[string]*PlatformConfig //key 是平台标记
}
func (this *PlatformConfigMgr) Get(plt string) *PlatformConfig {
ret, ok := this.Platforms[plt]
if !ok {
ret = new(PlatformConfig)
this.Platforms[plt] = ret
}
return ret
}
func (this *PlatformConfigMgr) Update(config any) {
if config == nil {
return
}
switch v := config.(type) {
case *webapi.PlayerPool:
this.Get(v.GetPlatform()).PlayerPool = v
case *webapi.GameConfig:
this.Get(v.GetPlatform()).GameConfig = v
default:
logger.Logger.Error("Update config type error")
}
}