torrent/storage/completion.go

24 lines
518 B
Go
Raw Normal View History

package storage
import (
"log"
"github.com/anacrolix/torrent/metainfo"
)
// Implementations track the completion of pieces. It must be concurrent-safe.
2017-05-22 02:15:48 +00:00
type PieceCompletion interface {
Get(metainfo.PieceKey) (bool, error)
Set(metainfo.PieceKey, bool) error
Close() error
}
2017-05-22 02:15:48 +00:00
func pieceCompletionForDir(dir string) (ret PieceCompletion) {
ret, err := NewBoltPieceCompletion(dir)
if err != nil {
log.Printf("couldn't open piece completion db in %q: %s", dir, err)
2017-05-22 02:15:48 +00:00
ret = NewMapPieceCompletion()
}
return
}