MCPcopy Index your code
hub / github.com/perkeep/perkeep / Read

Method Read

pkg/fs/fs.go:215–235  ·  view source on GitHub ↗
(ctx context.Context, req *fuse.ReadRequest, res *fuse.ReadResponse)

Source from the content-addressed store, hash-verified

213var _ fusefs.HandleReader = (*nodeReader)(nil)
214
215func (nr *nodeReader) Read(ctx context.Context, req *fuse.ReadRequest, res *fuse.ReadResponse) error {
216 Logger.Printf("CAMLI nodeReader READ on %v: %#v", nr.n.blobref, req)
217 if req.Offset >= nr.fr.Size() {
218 return nil
219 }
220 size := req.Size
221 if int64(size)+req.Offset >= nr.fr.Size() {
222 size -= int((int64(size) + req.Offset) - nr.fr.Size())
223 }
224 buf := make([]byte, size)
225 n, err := nr.fr.ReadAt(buf, req.Offset)
226 if err == io.EOF {
227 err = nil
228 }
229 if err != nil {
230 Logger.Printf("camli read on %v at %d: %v", nr.n.blobref, req.Offset, err)
231 return fuse.EIO
232 }
233 res.Data = buf[:n]
234 return nil
235}
236
237var _ fusefs.HandleReleaser = (*nodeReader)(nil)
238

Callers

nothing calls this directly

Calls 3

PrintfMethod · 0.80
SizeMethod · 0.65
ReadAtMethod · 0.45

Tested by

no test coverage detected