Merge branch 'master' into old-engine

This commit is contained in:
nikk gitanes
2023-10-05 03:48:16 +03:00
9 changed files with 52 additions and 15 deletions

View File

@@ -83,7 +83,7 @@ func (c *Cache) Piece(m metainfo.Piece) storage.PieceImpl {
if val, ok := c.pieces[m.Index()]; ok {
return val
}
return nil
return &PieceFake{}
}
func (c *Cache) Close() error {

View File

@@ -0,0 +1,33 @@
package torrstor
import (
"errors"
"github.com/anacrolix/torrent/storage"
)
type PieceFake struct{}
func (PieceFake) ReadAt(p []byte, off int64) (n int, err error) {
err = errors.New("fake")
return
}
func (PieceFake) WriteAt(p []byte, off int64) (n int, err error) {
err = errors.New("fake")
return
}
func (PieceFake) MarkComplete() error {
return errors.New("fake")
}
func (PieceFake) MarkNotComplete() error {
return errors.New("fake")
}
func (PieceFake) Completion() storage.Completion {
return storage.Completion{
Complete: false,
Ok: true,
}
}

View File

@@ -6,7 +6,7 @@ import (
"server/torr/storage"
"github.com/anacrolix/torrent/metainfo"
storage2 "github.com/anacrolix/torrent/storage"
ts "github.com/anacrolix/torrent/storage"
)
type Storage struct {
@@ -24,17 +24,21 @@ func NewStorage(capacity int64) *Storage {
return stor
}
func (s *Storage) OpenTorrent(info *metainfo.Info, infoHash metainfo.Hash) (storage2.TorrentImpl, error) {
func (s *Storage) OpenTorrent(info *metainfo.Info, infoHash metainfo.Hash) (ts.TorrentImpl, error) {
capFunc := func() (int64, bool) {
return s.capacity, true
}
s.mu.Lock()
defer s.mu.Unlock()
ch := NewCache(s.capacity, s)
ch.Init(info, infoHash)
s.caches[infoHash] = ch
return ch, nil
// return storage2.TorrentImpl{
// Piece: ch.Piece,
// Close: ch.Close,
// }, nil
// return ts.TorrentImpl{
// Piece: ch.Piece,
// Close: ch.Close,
// Capacity: &capFunc,
// }, nil
}
func (s *Storage) CloseHash(hash metainfo.Hash) {