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  }