34 lines
652 B
Go
34 lines
652 B
Go
package cache
|
|
|
|
import (
|
|
"sync"
|
|
|
|
"github.com/didi/nightingale/v5/models"
|
|
)
|
|
|
|
type ClasspathResMap struct {
|
|
sync.RWMutex
|
|
Data map[int64]*ClasspathAndRes
|
|
}
|
|
|
|
type ClasspathAndRes struct {
|
|
Res []string
|
|
Classpath *models.Classpath
|
|
}
|
|
|
|
// classpath_id -> classpath & res_idents
|
|
var ClasspathRes = &ClasspathResMap{Data: make(map[int64]*ClasspathAndRes)}
|
|
|
|
func (c *ClasspathResMap) Get(id int64) (*ClasspathAndRes, bool) {
|
|
c.RLock()
|
|
defer c.RUnlock()
|
|
resources, exists := c.Data[id]
|
|
return resources, exists
|
|
}
|
|
|
|
func (c *ClasspathResMap) SetAll(collectRulesMap map[int64]*ClasspathAndRes) {
|
|
c.Lock()
|
|
defer c.Unlock()
|
|
c.Data = collectRulesMap
|
|
}
|