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.
type Backend struct {
restic.Backend
restic.Cache
*Cache
}
// ensure cachedBackend implements restic.Backend

View File

@ -15,8 +15,9 @@ import (
// Cache manages a local cache.
type Cache struct {
Path string
Base string
Path string
Base string
PerformReadahead func(restic.Handle) bool
}
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
// 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) {
if basedir == "" {
basedir, err = getXDGCacheDir()
@ -124,6 +128,10 @@ func New(id string, basedir string) (c *Cache, err error) {
c = &Cache{
Path: cachedir,
Base: basedir,
PerformReadahead: func(restic.Handle) bool {
// do not perform readahead by default
return false
},
}
return c, nil