refactoring: use interface

This commit is contained in:
Chris Lu 2020-08-17 20:20:08 -07:00
parent be4d42b8e2
commit 09e126bae5
2 changed files with 8 additions and 3 deletions

View file

@ -19,7 +19,7 @@ type ChunkReadAt struct {
readerLock sync.Mutex
fileSize int64
chunkCache *chunk_cache.TieredChunkCache
chunkCache chunk_cache.ChunkCache
}
// var _ = io.ReaderAt(&ChunkReadAt{})
@ -53,7 +53,7 @@ func LookupFn(filerClient filer_pb.FilerClient) LookupFileIdFunctionType {
}
}
func NewChunkReaderAtFromClient(filerClient filer_pb.FilerClient, chunkViews []*ChunkView, chunkCache *chunk_cache.TieredChunkCache, fileSize int64) *ChunkReadAt {
func NewChunkReaderAtFromClient(filerClient filer_pb.FilerClient, chunkViews []*ChunkView, chunkCache chunk_cache.ChunkCache, fileSize int64) *ChunkReadAt {
return &ChunkReadAt{
chunkViews: chunkViews,

View file

@ -13,6 +13,11 @@ const (
onDiskCacheSizeLimit1 = 4 * memCacheSizeLimit
)
type ChunkCache interface {
GetChunk(fileId string, minSize uint64) (data []byte)
SetChunk(fileId string, data []byte)
}
// a global cache for recently accessed file chunks
type TieredChunkCache struct {
memCache *ChunkCacheInMemory