Files
service-scene/internal/instance/manager.go

43 lines
670 B
Go

package instance
import (
"sync"
)
var Mgr *insManager
type insManager struct {
sync.RWMutex
insMap map[string]*Instance // [uniqueNo]
}
func init() {
Mgr = &insManager{
insMap: make(map[string]*Instance),
}
}
func (m *insManager) Add(uniqueNo string, ins *Instance) {
m.Lock()
defer m.Unlock()
m.insMap[uniqueNo] = ins
}
func (m *insManager) Delete(uniqueNo string) {
m.Lock()
defer m.Unlock()
delete(m.insMap, uniqueNo)
}
func (m *insManager) GetAll() map[string]*Instance {
m.RLock()
defer m.RUnlock()
return m.insMap
}
func (m *insManager) GetByUniqueNo(uniqueNo string) *Instance {
m.RLock()
defer m.RUnlock()
return m.insMap[uniqueNo]
}