aboutsummaryrefslogtreecommitdiff
path: root/middleware/cache/freq/freq.go
diff options
context:
space:
mode:
Diffstat (limited to 'middleware/cache/freq/freq.go')
-rw-r--r--middleware/cache/freq/freq.go55
1 files changed, 0 insertions, 55 deletions
diff --git a/middleware/cache/freq/freq.go b/middleware/cache/freq/freq.go
deleted file mode 100644
index f545f222e..000000000
--- a/middleware/cache/freq/freq.go
+++ /dev/null
@@ -1,55 +0,0 @@
-// Package freq keeps track of last X seen events. The events themselves are not stored
-// here. So the Freq type should be added next to the thing it is tracking.
-package freq
-
-import (
- "sync"
- "time"
-)
-
-// Freq tracks the frequencies of things.
-type Freq struct {
- // Last time we saw a query for this element.
- last time.Time
- // Number of this in the last time slice.
- hits int
-
- sync.RWMutex
-}
-
-// New returns a new initialized Freq.
-func New(t time.Time) *Freq {
- return &Freq{last: t, hits: 0}
-}
-
-// Update updates the number of hits. Last time seen will be set to now.
-// If the last time we've seen this entity is within now - d, we increment hits, otherwise
-// we reset hits to 1. It returns the number of hits.
-func (f *Freq) Update(d time.Duration, now time.Time) int {
- earliest := now.Add(-1 * d)
- f.Lock()
- defer f.Unlock()
- if f.last.Before(earliest) {
- f.last = now
- f.hits = 1
- return f.hits
- }
- f.last = now
- f.hits++
- return f.hits
-}
-
-// Hits returns the number of hits that we have seen, according to the updates we have done to f.
-func (f *Freq) Hits() int {
- f.RLock()
- defer f.RUnlock()
- return f.hits
-}
-
-// Reset resets f to time t and hits to hits.
-func (f *Freq) Reset(t time.Time, hits int) {
- f.Lock()
- defer f.Unlock()
- f.last = t
- f.hits = hits
-}