Files
keenetic-exporter/internal/collector/registry.go
2025-10-18 09:27:39 +03:00

32 lines
533 B
Go

package collector
import (
"sync"
)
type Registry struct {
collectors []Collector
mutex sync.RWMutex
}
func NewRegistry() *Registry {
return &Registry{
collectors: make([]Collector, 0),
}
}
func (r *Registry) Register(collector Collector) {
r.mutex.Lock()
defer r.mutex.Unlock()
r.collectors = append(r.collectors, collector)
}
func (r *Registry) GetCollectors() []Collector {
r.mutex.RLock()
defer r.mutex.RUnlock()
result := make([]Collector, len(r.collectors))
copy(result, r.collectors)
return result
}