]> Sergey Matveev's repositories - btrtrc.git/commitdiff
Include completion known in PieceState
authorMatt Joiner <anacrolix@gmail.com>
Sun, 28 Jan 2018 04:58:55 +0000 (15:58 +1100)
committerMatt Joiner <anacrolix@gmail.com>
Sun, 28 Jan 2018 04:58:55 +0000 (15:58 +1100)
piece.go
piecestate.go
torrent.go

index 4726faf73198a878d918ea3cf5b6800d725e9520..8e89ba62c2dcfdf60bc1da9d8ae790d0f62175c0 100644 (file)
--- a/piece.go
+++ b/piece.go
@@ -229,3 +229,9 @@ func (p *Piece) uncachedPriority() (ret piecePriority) {
        ret.Raise(p.priority)
        return
 }
+
+func (p *Piece) completion() (ret storage.Completion) {
+       ret.Complete = p.t.pieceComplete(p.index)
+       ret.Ok = p.storageCompletionOk
+       return
+}
index 358ffcf2d015a57b3dfc5cfe364a08a6b63e7560..6007e338b6c41b01a58ab8cb770a6dff596c62ac 100644 (file)
@@ -1,10 +1,14 @@
 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.
index 7063969b0bc6a873c042b16b53f73ef2308095f8..976a04e3ca692bbe0d97dee719060e7a31f7c7ef 100644 (file)
@@ -449,9 +449,7 @@ func (t *Torrent) name() string {
 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
        }
@@ -511,6 +509,8 @@ func pieceStateRunStatusChars(psr PieceStateRun) (ret string) {
                        return "R"
                case PiecePriorityNow:
                        return "!"
+               case PiecePriorityHigh:
+                       return "H"
                default:
                        return ""
                }
@@ -524,6 +524,9 @@ func pieceStateRunStatusChars(psr PieceStateRun) (ret string) {
        if psr.Complete {
                ret += "C"
        }
+       if !psr.Ok {
+               ret += "?"
+       }
        return
 }