MCPcopy Create free account
hub / github.com/OpenListTeam/OpenList / ReadAt

Method ReadAt

internal/stream/stream.go:487–510  ·  view source on GitHub ↗
(p []byte, off int64)

Source from the content-addressed store, hash-verified

485}
486
487func (r *RangeReadReadAtSeeker) ReadAt(p []byte, off int64) (n int, err error) {
488 if off < 0 || off >= r.ss.GetSize() {
489 return 0, io.EOF
490 }
491 if off == 0 && r.headCache != nil {
492 return r.headCache.head(p)
493 }
494 var rr io.Reader
495 rr, err = r.getReaderAtOffset(off)
496 if err != nil {
497 return 0, err
498 }
499 n, err = io.ReadFull(rr, p)
500 if n > 0 {
501 off += int64(n)
502 switch err {
503 case nil:
504 r.readerMap.Store(int64(off), rr)
505 case io.ErrUnexpectedEOF:
506 err = io.EOF
507 }
508 }
509 return n, err
510}
511
512func (r *RangeReadReadAtSeeker) Seek(offset int64, whence int) (int64, error) {
513 switch whence {

Callers 1

ReadMethod · 0.95

Calls 4

getReaderAtOffsetMethod · 0.95
headMethod · 0.80
GetSizeMethod · 0.65
StoreMethod · 0.45

Tested by

no test coverage detected