master
go 38 lines 659 Bytes
Raw
1 // SPDX-License-Identifier: GPL-3.0-or-later
2
3 package discovery
4
5 import (
6 "github.com/netdata/netdata/go/plugins/plugin/framework/confgroup"
7 )
8
9 type cache map[string]*confgroup.Group // [Source]
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 }