apimachinery: k8s.io/apimachinery/pkg/util/cache Index | Files

package cache

import "k8s.io/apimachinery/pkg/util/cache"


Package Files

cache.go lruexpirecache.go

type Cache Uses

type Cache []*cacheShard

func NewCache Uses

func NewCache(maxSize int) Cache

func (*Cache) Add Uses

func (c *Cache) Add(index uint64, obj interface{}) bool

Returns true if object already existed, false otherwise.

func (*Cache) Get Uses

func (c *Cache) Get(index uint64) (obj interface{}, found bool)

type Clock Uses

type Clock interface {
    Now() time.Time

Clock defines an interface for obtaining the current time

type LRUExpireCache Uses

type LRUExpireCache struct {
    // contains filtered or unexported fields

LRUExpireCache is a cache that ensures the mostly recently accessed keys are returned with a ttl beyond which keys are forcibly expired.

func NewLRUExpireCache Uses

func NewLRUExpireCache(maxSize int) *LRUExpireCache

NewLRUExpireCache creates an expiring cache with the given size

func NewLRUExpireCacheWithClock Uses

func NewLRUExpireCacheWithClock(maxSize int, clock Clock) *LRUExpireCache

NewLRUExpireCacheWithClock creates an expiring cache with the given size, using the specified clock to obtain the current time.

func (*LRUExpireCache) Add Uses

func (c *LRUExpireCache) Add(key interface{}, value interface{}, ttl time.Duration)

Add adds the value to the cache at key with the specified maximum duration.

func (*LRUExpireCache) Get Uses

func (c *LRUExpireCache) Get(key interface{}) (interface{}, bool)

Get returns the value at the specified key from the cache if it exists and is not expired, or returns false.

func (*LRUExpireCache) Keys Uses

func (c *LRUExpireCache) Keys() []interface{}

Keys returns all the keys in the cache, even if they are expired. Subsequent calls to get may return not found. It returns all keys from oldest to newest.

func (*LRUExpireCache) Remove Uses

func (c *LRUExpireCache) Remove(key interface{})

Remove removes the specified key from the cache if it exists

Package cache imports 3 packages (graph) and is imported by 9 packages. Updated 2018-03-20. Refresh now. Tools for package owners.