2021-05-13 07:56:58 +08:00
|
|
|
package request_strategy
|
|
|
|
|
2021-10-05 17:06:23 +08:00
|
|
|
type ChunksIterFunc func(func(ChunkIndex))
|
|
|
|
|
|
|
|
type ChunksIter interface {
|
2021-10-07 14:31:10 +08:00
|
|
|
Iter(func(ci ChunkIndex))
|
2021-10-05 17:06:23 +08:00
|
|
|
}
|
2021-05-14 11:06:12 +08:00
|
|
|
|
2021-05-13 07:56:58 +08:00
|
|
|
type Piece struct {
|
|
|
|
Request bool
|
|
|
|
Priority piecePriority
|
|
|
|
Partial bool
|
|
|
|
Availability int64
|
|
|
|
Length int64
|
|
|
|
NumPendingChunks int
|
2021-05-14 11:06:12 +08:00
|
|
|
IterPendingChunks ChunksIter
|
2021-05-13 07:56:58 +08:00
|
|
|
}
|
2021-05-13 18:56:12 +08:00
|
|
|
|
2021-09-19 13:16:37 +08:00
|
|
|
func (p Piece) iterPendingChunksWrapper(f func(ChunkIndex)) {
|
2021-05-13 18:56:12 +08:00
|
|
|
i := p.IterPendingChunks
|
|
|
|
if i != nil {
|
2021-10-05 17:06:23 +08:00
|
|
|
i.Iter(f)
|
2021-05-13 18:56:12 +08:00
|
|
|
}
|
|
|
|
}
|