containerd/content/readerat.go
Derek McGowan 621760f10a
Add ReaderAt support to content store
Signed-off-by: Derek McGowan <derek@mcgstyle.net>
2017-06-07 10:43:00 -07:00

27 lines
449 B
Go

package content
import (
"io"
"os"
)
// readerat implements io.ReaderAt in a completely stateless manner by opening
// the referenced file for each call to ReadAt.
type readerAt struct {
f string
}
func (ra readerAt) ReadAt(p []byte, offset int64) (int, error) {
fp, err := os.Open(ra.f)
if err != nil {
return 0, err
}
defer fp.Close()
if _, err := fp.Seek(offset, io.SeekStart); err != nil {
return 0, err
}
return fp.Read(p)
}