Documentation ¶
Overview ¶
Package cacher provides various blobref fetching caching mechanisms.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type CachingFetcher ¶
type CachingFetcher struct {
// contains filtered or unexported fields
}
A CachingFetcher is a blob.Fetcher and a blob.SeekFetcher.
func NewCachingFetcher ¶
func NewCachingFetcher(cache blobserver.Cache, fetcher blob.Fetcher) *CachingFetcher
NewCachingFetcher returns a CachingFetcher that fetches from fetcher and writes to and serves from cache.
func (*CachingFetcher) Fetch ¶
func (cf *CachingFetcher) Fetch(ctx context.Context, br blob.Ref) (content io.ReadCloser, size uint32, err error)
func (*CachingFetcher) SetCacheHitHook ¶
func (cf *CachingFetcher) SetCacheHitHook(fn func(br blob.Ref, rc io.ReadCloser) (io.ReadCloser, error))
SetCacheHitHook sets a function that will modify the return values from Fetch in the case of a cache hit. Its purpose is to add potential side-effects from calling the Fetcher that would have happened if we had had a cache miss. It is the responsibility of fn to return a ReadCloser equivalent to the state that rc was given in.
type DiskCache ¶
type DiskCache struct { *CachingFetcher // Root is the temp directory being used to store files. // It is available mostly for debug printing. Root string // contains filtered or unexported fields }
A DiskCache is a blob.Fetcher that serves from a local temp directory and is backed by a another blob.Fetcher (usually the pkg/client HTTP client).
func NewDiskCache ¶
NewDiskCache returns a new DiskCache from a Fetcher, which is usually the pkg/client HTTP client (which typically has much higher latency and lower bandwidth than local disk).