gitee.com/zhongguo168a/gocodes@v0.0.0-20230609140523-e1828349603f/datax/versionx/cachez-root-map.go (about) 1 package versionx 2 3 // RootMap只用于管理Root, 便于coder进行处理 4 type RootMap map[string]IRoot 5 6 func (m RootMap) Get(key string) (r IRoot, has bool) { 7 r, has = m[key] 8 if has == false { 9 return 10 } 11 return 12 } 13 14 func (m RootMap) Remove(key string) { 15 src, has := m[key] 16 if has == false { 17 return 18 } 19 src.RefRemove() 20 } 21 22 func (m RootMap) Set(r IRoot) { 23 //m[r.RefKey()] = r 24 } 25 26 func (m RootMap) DisposeAll() { 27 for key, val := range m { 28 val.RefDispose() 29 delete(m, key) 30 } 31 } 32 33 func (m RootMap) DisposeRemoved() { 34 for key, val := range m { 35 if val.RefIsRemove() == false { 36 continue 37 } 38 val.RefDispose() 39 delete(m, key) 40 } 41 }