MCPcopy Index your code
hub / github.com/mudler/LocalAI / Read

Method Read

core/services/cloudproxy/backend_forward.go:165–191  ·  view source on GitHub ↗
(p []byte)

Source from the content-addressed store, hash-verified

163}
164
165func (r *forwardReader) Read(p []byte) (int, error) {
166 if r.err != nil && r.pos >= len(r.buf) {
167 return 0, r.err
168 }
169 if r.pos >= len(r.buf) {
170 // Need a new chunk.
171 reply, err := r.stream.Recv()
172 if err != nil {
173 if errors.Is(err, io.EOF) {
174 r.err = io.EOF
175 return 0, io.EOF
176 }
177 r.err = err
178 return 0, err
179 }
180 r.buf = reply.GetBodyChunk()
181 r.pos = 0
182 if len(r.buf) == 0 {
183 // Zero-length chunk — try again rather than returning 0
184 // (some readers treat that as EOF).
185 return r.Read(p)
186 }
187 }
188 n := copy(p, r.buf[r.pos:])
189 r.pos += n
190 return n, nil
191}
192
193func (r *forwardReader) Close() error {
194 // Drain any remaining replies so the server-side goroutine isn't

Callers 5

forwardStreamFunction · 0.45
serveMethod · 0.45
leaf_test.goFile · 0.45

Calls 3

RecvMethod · 0.65
copyFunction · 0.50
IsMethod · 0.45

Tested by 2