if ps.SetLeecherStorageCapacity {
fc.SetCapacity(ps.LeecherStorageCapacity)
}
- cfg.DefaultStorage = storage.NewPieceFileStorage(storage.FileCacheFileStore{fc})
+ cfg.DefaultStorage = storage.NewPieceFileStorage(fc.AsFileStore())
leecher, err := NewClient(&cfg)
require.NoError(t, err)
defer leecher.Close()
require.NoError(t, err)
greetingDataTempDir, greetingMetainfo := testutil.GreetingTestTorrent()
defer os.RemoveAll(greetingDataTempDir)
- filePieceStore := storage.NewPieceFileStorage(storage.FileCacheFileStore{fileCache})
+ filePieceStore := storage.NewPieceFileStorage(fileCache.AsFileStore())
greetingData, err := filePieceStore.OpenTorrent(&greetingMetainfo.Info)
require.NoError(t, err)
writeTorrentData(greetingData, &greetingMetainfo.Info, []byte(testutil.GreetingFileContents))
if ps.SetLeecherStorageCapacity {
fc.SetCapacity(ps.LeecherStorageCapacity)
}
- cfg.DefaultStorage = storage.NewPieceFileStorage(storage.FileCacheFileStore{fc})
+ cfg.DefaultStorage = storage.NewPieceFileStorage(fc.AsFileStore())
cfg.DataDir = leecherDataDir
leecher, _ := NewClient(&cfg)
defer leecher.Close()
"path"
"github.com/anacrolix/missinggo"
- "github.com/anacrolix/missinggo/filecache"
"github.com/anacrolix/torrent/metainfo"
)
-type FileStore interface {
- OpenFile(path string, flags int) (File, error)
- Stat(path string) (os.FileInfo, error)
- Rename(from, to string) error
- Remove(path string) error
-}
-
-type File interface {
- io.ReaderAt
- io.WriterAt
- io.Writer
- io.Reader
- io.Closer
- io.Seeker
-}
-
-type FileCacheFileStore struct {
- *filecache.Cache
-}
-
-func (me FileCacheFileStore) OpenFile(p string, f int) (File, error) {
- return me.Cache.OpenFile(p, f)
-}
-
type pieceFileStorage struct {
- fs FileStore
+ fs missinggo.FileStore
}
-func NewPieceFileStorage(fs FileStore) I {
+func NewPieceFileStorage(fs missinggo.FileStore) I {
return &pieceFileStorage{
fs: fs,
}
type pieceFileTorrentStoragePiece struct {
ts *pieceFileTorrentStorage
p metainfo.Piece
- fs FileStore
+ fs missinggo.FileStore
}
func (me pieceFileTorrentStoragePiece) completedPath() string {