diff options
Diffstat (limited to 'vendor/github.com/wiggin77/cfg/source.go')
-rw-r--r-- | vendor/github.com/wiggin77/cfg/source.go | 58 |
1 files changed, 0 insertions, 58 deletions
diff --git a/vendor/github.com/wiggin77/cfg/source.go b/vendor/github.com/wiggin77/cfg/source.go deleted file mode 100644 index 09083e97..00000000 --- a/vendor/github.com/wiggin77/cfg/source.go +++ /dev/null @@ -1,58 +0,0 @@ -package cfg - -import ( - "sync" - "time" -) - -// Source is the interface required for any source of name/value pairs. -type Source interface { - - // GetProps fetches all the properties from a source and returns - // them as a map. - GetProps() (map[string]string, error) -} - -// SourceMonitored is the interface required for any config source that is -// monitored for changes. -type SourceMonitored interface { - Source - - // GetLastModified returns the time of the latest modification to any - // property value within the source. If a source does not support - // modifying properties at runtime then the zero value for `Time` - // should be returned to ensure reload events are not generated. - GetLastModified() (time.Time, error) - - // GetMonitorFreq returns the frequency as a `time.Duration` between - // checks for changes to this config source. - // - // Returning zero (or less) will temporarily suspend calls to `GetLastModified` - // and `GetMonitorFreq` will be called every 10 seconds until resumed, after which - // `GetMontitorFreq` will be called at a frequency roughly equal to the `time.Duration` - // returned. - GetMonitorFreq() time.Duration -} - -// AbstractSourceMonitor can be embedded in a custom `Source` to provide the -// basic plumbing for monitor frequency. -type AbstractSourceMonitor struct { - mutex sync.RWMutex - freq time.Duration -} - -// GetMonitorFreq returns the frequency as a `time.Duration` between -// checks for changes to this config source. -func (asm *AbstractSourceMonitor) GetMonitorFreq() (freq time.Duration) { - asm.mutex.RLock() - freq = asm.freq - asm.mutex.RUnlock() - return -} - -// SetMonitorFreq sets the frequency between checks for changes to this config source. -func (asm *AbstractSourceMonitor) SetMonitorFreq(freq time.Duration) { - asm.mutex.Lock() - asm.freq = freq - asm.mutex.Unlock() -} |