-
Notifications
You must be signed in to change notification settings - Fork 56
/
loaderwatcher.go
40 lines (34 loc) · 749 Bytes
/
loaderwatcher.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
package konfig
// LoaderWatcher is an interface that implements both loader and watcher
type LoaderWatcher interface {
Loader
Watcher
}
type loaderWatcher struct {
Loader
Watcher
values Values
name string
s *S
metrics *loaderMetrics
loaderHooks LoaderHooks
}
// NewLoaderWatcher creates a new LoaderWatcher from a Loader and a Watcher
func NewLoaderWatcher(l Loader, w Watcher) LoaderWatcher {
return &loaderWatcher{
Loader: l,
Watcher: w,
}
}
func (c *S) newLoaderWatcher(l Loader, w Watcher, loaderHooks LoaderHooks) *loaderWatcher {
var lw = &loaderWatcher{
Loader: l,
Watcher: w,
s: c,
loaderHooks: loaderHooks,
}
if c.cfg.Metrics {
lw.setMetrics()
}
return lw
}