Documentation ¶
Overview ¶
Package cache implements both in-memory and on-disk caching.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Cache ¶
type Cache interface { io.Closer // Keys returns the list of all cached digests in LRU order. Keys() isolated.HexDigests // Touch updates the LRU position of an item to ensure it is kept in the // cache. // // Returns true if item is in cache. Touch(digest isolated.HexDigest) bool // Evict removes item from cache if it's there. Evict(digest isolated.HexDigest) // Add reads data from src and stores it in cache. Add(digest isolated.HexDigest, src io.Reader) error // Read returns contents of the cached item. Read(digest isolated.HexDigest) (io.ReadCloser, error) // Hardlink ensures file at |dest| has the same content as cached |digest|. // // Note that the behavior when dest already exists is undefined. It will work // on all POSIX and may or may not fail on Windows depending on the // implementation used. Do not rely on this behavior. Hardlink(digest isolated.HexDigest, dest string, perm os.FileMode) error }
Cache is a cache of objects.
All implementations must be thread-safe.
type Policies ¶
type Policies struct { // MaxSize trims if the cache gets larger than this value. If 0, the cache is // effectively a leak. MaxSize units.Size // MaxItems is the maximum number of items to keep in the cache. If 0, do not // enforce a limit. MaxItems int // MinFreeSpace trims if disk free space becomes lower than this value. If 0, // it unconditionally fills the disk. Only makes sense when using disk based // cache. // // BUG: Implement Policies.MinFreeSpace. MinFreeSpace units.Size }
Policies is the policies to use on a cache to limit it's footprint.
It's a cache, not a leak.
Click to show internal directories.
Click to hide internal directories.