| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 | 
							- // Package cache provides partial implementations of Guava Cache,
 
- // including support for LRU, Segmented LRU and TinyLFU.
 
- package cache
 
- // Key is any value which is comparable.
 
- // See http://golang.org/ref/spec#Comparison_operators for details.
 
- type Key interface{}
 
- // Value is any value.
 
- type Value interface{}
 
- // Cache is a key-value cache which entries are added and stayed in the
 
- // cache until either are evicted or manually invalidated.
 
- type Cache interface {
 
- 	// GetIfPresent returns value associated with Key or (nil, false)
 
- 	// if there is no cached value for Key.
 
- 	GetIfPresent(Key) (Value, bool)
 
- 	// Put associates value with Key. If a value is already associated
 
- 	// with Key, the old one will be replaced with Value.
 
- 	Put(Key, Value)
 
- 	// Invalidate discards cached value of the given Key.
 
- 	Invalidate(Key)
 
- 	// InvalidateAll discards all entries.
 
- 	InvalidateAll()
 
- 	// Stats copies cache statistics to given Stats pointer.
 
- 	Stats(*Stats)
 
- 	// Close implements io.Closer for cleaning up all resources.
 
- 	// Users must ensure the cache is not being used before closing or
 
- 	// after closed.
 
- 	Close() error
 
- }
 
- // Func is a generic callback for entry events in the cache.
 
- type Func func(Key, Value)
 
- // LoadingCache is a cache with values are loaded automatically and stored
 
- // in the cache until either evicted or manually invalidated.
 
- type LoadingCache interface {
 
- 	Cache
 
- 	// Get returns value associated with Key or call underlying LoaderFunc
 
- 	// to load value if it is not present.
 
- 	Get(Key) (Value, error)
 
- 	// Refresh loads new value for Key. If the Key already existed, the previous value
 
- 	// will continue to be returned by Get while the new value is loading.
 
- 	// If Key does not exist, this function will block until the value is loaded.
 
- 	Refresh(Key)
 
- }
 
- // LoaderFunc retrieves the value corresponding to given Key.
 
- type LoaderFunc func(Key) (Value, error)
 
- // Executor specifies how cache loader is run to refresh value for the Key.
 
- // By default, it is run in a new go routine.
 
- type Executor interface {
 
- 	// Execute runs the fn asynchronously.
 
- 	Execute(fn func())
 
- 	// Close shuts down all running tasks. Currently, the error returned is not being used.
 
- 	Close() error
 
- }
 
 
  |