MCPcopy Index your code
hub / github.com/google/gvisor / read

Method read

pkg/buffer/buffer.go:556–579  ·  view source on GitHub ↗

read implements the io.Reader interface. This method is used by BufferReader to consume its underlying buffer. To perform io operations on buffers directly, use ReadToWriter or WriteToReader.

(p []byte)

Source from the content-addressed store, hash-verified

554// to consume its underlying buffer. To perform io operations on buffers
555// directly, use ReadToWriter or WriteToReader.
556func (b *Buffer) read(p []byte) (int, error) {
557 if len(p) == 0 {
558 return 0, nil
559 }
560 if b.Size() == 0 {
561 return 0, io.EOF
562 }
563 done := 0
564 v := b.data.Front()
565 for v != nil && done < len(p) {
566 n, err := v.Read(p[done:])
567 done += n
568 next := v.Next()
569 if v.Size() == 0 {
570 b.removeView(v)
571 }
572 b.size -= int64(n)
573 if err != nil && err != io.EOF {
574 return done, err
575 }
576 v = next
577 }
578 return done, nil
579}
580
581// readByte implements the io.ByteReader interface. This method is used by
582// BufferReader to consume its underlying buffer. To perform io operations on

Callers 1

TestReadFunction · 0.95

Calls 6

SizeMethod · 0.95
removeViewMethod · 0.95
ReadMethod · 0.65
NextMethod · 0.65
SizeMethod · 0.65
FrontMethod · 0.45

Tested by 1

TestReadFunction · 0.76