MCPcopy
hub / github.com/SurgeDM/Surge / Read

Method Read

internal/engine/single/downloader.go:246–273  ·  view source on GitHub ↗
(p []byte)

Source from the content-addressed store, hash-verified

244}
245
246func (w *progressReader) Read(p []byte) (int, error) {
247 n, err := w.reader.Read(p)
248 if n <= 0 || w.state == nil {
249 return n, err
250 }
251
252 written := int64(n)
253 w.written += written
254 w.pending += written
255 if w.pending >= w.batchSize {
256 w.flushWithTime(time.Now())
257 return n, err
258 }
259
260 if w.batchInterval > 0 {
261 // Check wall-clock interval periodically to avoid calling time.Now on every read.
262 w.readChecks++
263 if w.readChecks >= 8 {
264 now := time.Now()
265 if now.Sub(w.lastFlush) >= w.batchInterval {
266 w.flushWithTime(now)
267 }
268 w.readChecks = 0
269 }
270 }
271
272 return n, err
273}
274
275func (w *progressReader) Flush() {
276 w.flushWithTime(time.Now())

Callers 8

downloadTaskMethod · 0.45
ReadMethod · 0.45
CreateTestFileFunction · 0.45
NewMockServerFunction · 0.45
NewMockServerTFunction · 0.45
NewStreamingMockServerFunction · 0.45
NewStreamingMockServerTFunction · 0.45

Calls 1

flushWithTimeMethod · 0.95

Tested by

no test coverage detected