From: Matt Joiner Date: Mon, 21 Jun 2021 02:04:06 +0000 (+1000) Subject: Merge branch 'request-strategy-rewrite' X-Git-Tag: v1.29.0~31 X-Git-Url: http://www.git.stargrave.org/?a=commitdiff_plain;h=ebd19af7951b9a2f409f08e03e7edb3bf9c8ac14;p=btrtrc.git Merge branch 'request-strategy-rewrite' --- ebd19af7951b9a2f409f08e03e7edb3bf9c8ac14 diff --cc storage/interface.go index 584338cb,271bc7e6..a52ee6dc --- a/storage/interface.go +++ b/storage/interface.go @@@ -17,14 -17,15 +17,16 @@@ type ClientImpl interface } // Data storage bound to a torrent. - type TorrentImpl interface { - Piece(metainfo.Piece) PieceImpl - Close() error + type TorrentImpl struct { + Piece func(p metainfo.Piece) PieceImpl + Close func() error + // Storages that share the same value, will provide a pointer to the same function. + Capacity *func() *int64 } -// Interacts with torrent piece data. Optional interfaces to implement include io.WriterTo, such as -// when a piece supports a more efficient way to write out incomplete chunks +// Interacts with torrent piece data. Optional interfaces to implement include: +// io.WriterTo, such as when a piece supports a more efficient way to write out incomplete chunks. +// SelfHashing, such as when a piece supports a more efficient way to hash its contents. type PieceImpl interface { // These interfaces are not as strict as normally required. They can // assume that the parameters are appropriate for the dimensions of the