2
0
mirror of synced 2025-02-24 14:48:27 +00:00
torrent/storage/completion_piece_map.go
Matt Joiner 5c5a26afed Add bolt piece completion DB
This means it can be persistent without needing cgo. Fixes issues #115 and #124.
2016-10-25 19:07:26 +11:00

29 lines
526 B
Go

package storage
import (
"github.com/anacrolix/torrent/metainfo"
)
type mapPieceCompletion struct {
m map[metainfo.PieceKey]struct{}
}
func (mapPieceCompletion) Close() error { return nil }
func (me *mapPieceCompletion) Get(pk metainfo.PieceKey) (bool, error) {
_, ok := me.m[pk]
return ok, nil
}
func (me *mapPieceCompletion) Set(pk metainfo.PieceKey, b bool) error {
if b {
if me.m == nil {
me.m = make(map[metainfo.PieceKey]struct{})
}
me.m[pk] = struct{}{}
} else {
delete(me.m, pk)
}
return nil
}