]> Sergey Matveev's repositories - btrtrc.git/blob - storage/disabled/disabled.go
Add storage/disabled
[btrtrc.git] / storage / disabled / disabled.go
1 package disabled
2
3 import (
4         "errors"
5
6         "github.com/anacrolix/torrent/metainfo"
7         "github.com/anacrolix/torrent/storage"
8 )
9
10 type Client struct{}
11
12 var capacity int64
13
14 func (c Client) OpenTorrent(info *metainfo.Info, infoHash metainfo.Hash) (storage.TorrentImpl, error) {
15         capFunc := func() *int64 {
16                 return &capacity
17         }
18         return storage.TorrentImpl{
19                 Piece: func(piece metainfo.Piece) storage.PieceImpl {
20                         return Piece{}
21                 },
22                 Close: func() error {
23                         return nil
24                 },
25                 Capacity: &capFunc,
26         }, nil
27 }
28
29 func (c Client) capacity() *int64 {
30         return &capacity
31 }
32
33 type Piece struct{}
34
35 func (Piece) ReadAt(p []byte, off int64) (n int, err error) {
36         err = errors.New("disabled")
37         return
38 }
39
40 func (Piece) WriteAt(p []byte, off int64) (n int, err error) {
41         err = errors.New("disabled")
42         return
43 }
44
45 func (Piece) MarkComplete() error {
46         return errors.New("disabled")
47 }
48
49 func (Piece) MarkNotComplete() error {
50         return errors.New("disabled")
51 }
52
53 func (Piece) Completion() storage.Completion {
54         return storage.Completion{
55                 Complete: false,
56                 Ok:       true,
57         }
58 }