cache: Add PerformReadahead

This commit is contained in:
Alexander Neumann 2017-09-24 22:24:11 +02:00
parent 809e218d20
commit 5436154f0d
2 changed files with 11 additions and 3 deletions

View file

@ -11,7 +11,7 @@ import (
// Backend wraps a restic.Backend and adds a cache. // Backend wraps a restic.Backend and adds a cache.
type Backend struct { type Backend struct {
restic.Backend restic.Backend
restic.Cache *Cache
} }
// ensure cachedBackend implements restic.Backend // ensure cachedBackend implements restic.Backend

View file

@ -15,8 +15,9 @@ import (
// Cache manages a local cache. // Cache manages a local cache.
type Cache struct { type Cache struct {
Path string Path string
Base string Base string
PerformReadahead func(restic.Handle) bool
} }
const dirMode = 0700 const dirMode = 0700
@ -78,6 +79,9 @@ func writeCachedirTag(dir string) error {
// New returns a new cache for the repo ID at basedir. If basedir is the empty // New returns a new cache for the repo ID at basedir. If basedir is the empty
// string, the default cache location (according to the XDG standard) is used. // string, the default cache location (according to the XDG standard) is used.
//
// For partial files, the complete file is loaded and stored in the cache when
// performReadahead returns true.
func New(id string, basedir string) (c *Cache, err error) { func New(id string, basedir string) (c *Cache, err error) {
if basedir == "" { if basedir == "" {
basedir, err = getXDGCacheDir() basedir, err = getXDGCacheDir()
@ -124,6 +128,10 @@ func New(id string, basedir string) (c *Cache, err error) {
c = &Cache{ c = &Cache{
Path: cachedir, Path: cachedir,
Base: basedir, Base: basedir,
PerformReadahead: func(restic.Handle) bool {
// do not perform readahead by default
return false
},
} }
return c, nil return c, nil