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] }