storage/disabled/disabled.go | 58 +++++++++++++++++++++++++++++++++++++++++++++++++++++ diff --git a/storage/disabled/disabled.go b/storage/disabled/disabled.go new file mode 100644 index 0000000000000000000000000000000000000000..22d51434ee2cabd977759f0db7035c813b69c1c8 --- /dev/null +++ b/storage/disabled/disabled.go @@ -0,0 +1,58 @@ +package disabled + +import ( + "errors" + + "github.com/anacrolix/torrent/metainfo" + "github.com/anacrolix/torrent/storage" +) + +type Client struct{} + +var capacity int64 + +func (c Client) OpenTorrent(info *metainfo.Info, infoHash metainfo.Hash) (storage.TorrentImpl, error) { + capFunc := func() *int64 { + return &capacity + } + return storage.TorrentImpl{ + Piece: func(piece metainfo.Piece) storage.PieceImpl { + return Piece{} + }, + Close: func() error { + return nil + }, + Capacity: &capFunc, + }, nil +} + +func (c Client) capacity() *int64 { + return &capacity +} + +type Piece struct{} + +func (Piece) ReadAt(p []byte, off int64) (n int, err error) { + err = errors.New("disabled") + return +} + +func (Piece) WriteAt(p []byte, off int64) (n int, err error) { + err = errors.New("disabled") + return +} + +func (Piece) MarkComplete() error { + return errors.New("disabled") +} + +func (Piece) MarkNotComplete() error { + return errors.New("disabled") +} + +func (Piece) Completion() storage.Completion { + return storage.Completion{ + Complete: false, + Ok: true, + } +}