storage/file.go | 6 ++++++ diff --git a/storage/file.go b/storage/file.go index ea51e7640ed002873fa3df12a004712b4f44ab2c..1b7ed749726787bc64d59fc44a40f4b23ef642ef 100644 --- a/storage/file.go +++ b/storage/file.go @@ -10,6 +10,8 @@ "github.com/anacrolix/torrent/metainfo" ) +// File-based storage for torrents, that isn't yet bound to a particular +// torrent. type fileStorage struct { baseDir string completed map[[20]byte]bool @@ -25,15 +27,18 @@ func (fs *fileStorage) OpenTorrent(info *metainfo.InfoEx) (Torrent, error) { return fileTorrentStorage{fs}, nil } +// File-based torrent storage, not yet bound to a Torrent. type fileTorrentStorage struct { *fileStorage } func (fs *fileStorage) Piece(p metainfo.Piece) Piece { + // Create a view onto the file-based torrent storage. _io := &fileStorageTorrent{ p.Info, fs.baseDir, } + // Return the appropriate segments of this. return &fileStoragePiece{ fs, p, @@ -65,6 +70,7 @@ fs.completed[fs.p.Hash()] = true return nil } +// Exposes file-based storage of a torrent, as one big ReadWriterAt. type fileStorageTorrent struct { info *metainfo.InfoEx baseDir string