package modelrepo import "joylink.club/rtsssimulation/modelrepo/model" type Repo interface { // 模型仓库id Id() string // 获取所有设备集中站 GetEcses() []model.EcStation // 获取所有道岔 GetTurnouts() []model.Turnout // 获取所有信号机 GetSignals() []model.Signal // 获取所有站台屏蔽门 GetPsds() []model.Psd } type IdMap interface { // 获取数据元素id DeId() string // 获取uid Uid() string } // type repo struct { // id string // idMapping *IdMapping // id映射 // modelMap map[string]model.Model // 模型map,key为uid // linkMap map[string]*impl.Link // 链路map,key为uid // physicalSectionMap map[string]*impl.PhysicalSection // 物理区段map,key为uid // turnoutMap map[string]*impl.Turnout // 道岔map,key为uid // } // func BuildFrom(msgs *dto.modelrepo) (modelrepo, *ErrorRecord) { // errRecord := NewErrorRecord() // idMapping := BuildIdMapping(msgs, errRecord) // if errRecord.HasError() { // return nil, errRecord // } // repo := &repo{ // id: msgs.Id, // idMapping: idMapping, // modelMap: make(map[string]model.Model, 1024), // linkMap: make(map[string]*impl.Link, 256), // physicalSectionMap: make(map[string]*impl.PhysicalSection, 256), // turnoutMap: make(map[string]*impl.Turnout, 128), // } // return repo, errRecord // } // // 模型仓库id // func (r *repo) Id() string { // return r.id // } // // 通过uid查询模型对象 // func (r *repo) FindByUid(uid string) model.Model { // return nil // }