github.com/netdata/go.d.plugin@v0.58.1/agent/discovery/cache.go (about) 1 // SPDX-License-Identifier: GPL-3.0-or-later 2 3 package discovery 4 5 import ( 6 "github.com/netdata/go.d.plugin/agent/confgroup" 7 ) 8 9 type cache map[string]*confgroup.Group 10 11 func newCache() *cache { 12 return &cache{} 13 } 14 15 func (c cache) update(groups []*confgroup.Group) { 16 if len(groups) == 0 { 17 return 18 } 19 for _, group := range groups { 20 if group != nil { 21 c[group.Source] = group 22 } 23 } 24 } 25 26 func (c cache) reset() { 27 for key := range c { 28 delete(c, key) 29 } 30 } 31 32 func (c cache) groups() []*confgroup.Group { 33 groups := make([]*confgroup.Group, 0, len(c)) 34 for _, group := range c { 35 groups = append(groups, group) 36 } 37 return groups 38 }