mirror of
https://github.com/kopia/kopia.git
synced 2026-01-26 23:38:04 -05:00
35 lines
936 B
Go
35 lines
936 B
Go
package block
|
|
|
|
import "context"
|
|
|
|
type contextKey string
|
|
|
|
var useBlockCacheContextKey contextKey = "use-block-cache"
|
|
var useListCacheContextKey contextKey = "use-list-cache"
|
|
|
|
// UsingBlockCache returns a derived context that causes block manager to use cache.
|
|
func UsingBlockCache(ctx context.Context, enabled bool) context.Context {
|
|
return context.WithValue(ctx, useBlockCacheContextKey, enabled)
|
|
}
|
|
|
|
// UsingListCache returns a derived context that causes block manager to use cache.
|
|
func UsingListCache(ctx context.Context, enabled bool) context.Context {
|
|
return context.WithValue(ctx, useListCacheContextKey, enabled)
|
|
}
|
|
|
|
func shouldUseBlockCache(ctx context.Context) bool {
|
|
if enabled, ok := ctx.Value(useBlockCacheContextKey).(bool); ok {
|
|
return enabled
|
|
}
|
|
|
|
return true
|
|
}
|
|
|
|
func shouldUseListCache(ctx context.Context) bool {
|
|
if enabled, ok := ctx.Value(useListCacheContextKey).(bool); ok {
|
|
return enabled
|
|
}
|
|
|
|
return true
|
|
}
|