ret.Raise(p.priority)
return
}
+
+func (p *Piece) completion() (ret storage.Completion) {
+ ret.Complete = p.t.pieceComplete(p.index)
+ ret.Ok = p.storageCompletionOk
+ return
+}
package torrent
+import (
+ "github.com/anacrolix/torrent/storage"
+)
+
// The current state of a piece.
type PieceState struct {
Priority piecePriority
// The piece is available in its entirety.
- Complete bool
+ storage.Completion
// The piece is being hashed, or is queued for hash.
Checking bool
// Some of the piece has been obtained.
func (t *Torrent) pieceState(index int) (ret PieceState) {
p := &t.pieces[index]
ret.Priority = t.piecePriority(index)
- if t.pieceComplete(index) {
- ret.Complete = true
- }
+ ret.Completion = p.completion()
if p.queuedForHash() || p.hashing {
ret.Checking = true
}
return "R"
case PiecePriorityNow:
return "!"
+ case PiecePriorityHigh:
+ return "H"
default:
return ""
}
if psr.Complete {
ret += "C"
}
+ if !psr.Ok {
+ ret += "?"
+ }
return
}