Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var ErrCacheCapacityInvalid = errors.New("cache capacity is less than 1")
ErrCacheCapacityInvalid signals that capacity of cache is less than 1
View Source
var ErrCacheSizeInvalid = errors.New("cache size is less than 1")
ErrCacheSizeInvalid signals that size of cache is less than 1
Functions ¶
This section is empty.
Types ¶
type Cacher ¶
type Cacher interface { // Clear is used to completely clear the cache. Clear() // Put adds a value to the cache. Returns true if an eviction occurred. Put(key []byte, value interface{}, sizeInBytes int) (evicted bool) // Get looks up a key's value from the cache. Get(key []byte) (value interface{}, ok bool) // Has checks if a key is in the cache, without updating the // recent-ness or deleting it for being stale. Has(key []byte) bool // Peek returns the key value (or undefined if not found) without updating // the "recently used"-ness of the key. Peek(key []byte) (value interface{}, ok bool) // HasOrAdd checks if a key is in the cache without updating the // recent-ness or deleting it for being stale, and if not adds the value. HasOrAdd(key []byte, value interface{}, sizeInBytes int) (has, added bool) // Remove removes the provided key from the cache. Remove(key []byte) // Keys returns a slice of the keys in the cache, from oldest to newest. Keys() [][]byte // Len returns the number of items in the cache. Len() int // SizeInBytesContained returns the size in bytes of all contained elements SizeInBytesContained() uint64 // MaxSize returns the maximum number of items which can be stored in the cache. MaxSize() int // RegisterHandler registers a new handler to be called when a new data is added RegisterHandler(handler func(key []byte, value interface{}), id string) // UnRegisterHandler deletes the handler from the list UnRegisterHandler(id string) // Close closes the underlying temporary db if the cacher implementation has one, // otherwise it does nothing Close() error // IsInterfaceNil returns true if there is no value under the interface IsInterfaceNil() bool }
Cacher provides caching services
type ForEachItem ¶
type ForEachItem func(key []byte, value interface{})
ForEachItem is an iterator callback
type KeyValuePair ¶
KeyValuePair is a tuple of (key, value)
type LRUCacheHandler ¶
type LRUCacheHandler interface { Add(key, value interface{}) bool Get(key interface{}) (value interface{}, ok bool) Contains(key interface{}) (ok bool) ContainsOrAdd(key, value interface{}) (ok, evicted bool) Peek(key interface{}) (value interface{}, ok bool) Remove(key interface{}) bool Keys() []interface{} Len() int Purge() }
LRUCacheHandler is the interface for LRU cache.
type SizedLRUCacheHandler ¶
type SizedLRUCacheHandler interface { AddSized(key, value interface{}, sizeInBytes int64) bool Get(key interface{}) (value interface{}, ok bool) Contains(key interface{}) (ok bool) AddSizedIfMissing(key, value interface{}, sizeInBytes int64) (ok, evicted bool) Peek(key interface{}) (value interface{}, ok bool) Remove(key interface{}) bool Keys() []interface{} Len() int SizeInBytesContained() uint64 Purge() }
SizedLRUCacheHandler is the interface for size capable LRU cache.
Click to show internal directories.
Click to hide internal directories.