Documentation
¶
Overview ¶
Package storage implements storage backends for package torrent.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func CreateNativeZeroLengthFiles ¶
Creates natives files for any zero-length file entries in the info. This is a helper for file-based storages, which don't address or write to zero- length files because they have no corresponding pieces.
Types ¶
type Client ¶
type Client struct {
ClientImpl
}
func NewClient ¶
func NewClient(cl ClientImpl) *Client
type ClientImpl ¶
type ClientImpl interface {
OpenTorrent(info *metainfo.Info, infoHash metainfo.Hash) (TorrentImpl, error)
Close() error
}
Represents data storage for an unspecified torrent.
func NewBoltDB ¶
func NewBoltDB(filePath string) ClientImpl
func NewFileByInfoHash ¶
func NewFileByInfoHash(baseDir string) ClientImpl
All Torrent data stored in subdirectorys by infohash
func NewFileWithCustomPathMaker ¶
func NewFileWithCustomPathMaker(baseDir string, pathMaker func(baseDir string, info *metainfo.Info, infoHash metainfo.Hash) string) ClientImpl
Allows passing a function to determine the path for storing torrent data
func NewMMap ¶
func NewMMap(baseDir string) ClientImpl
func NewResourcePieces ¶
func NewResourcePieces(p resource.Provider) ClientImpl
type PieceImpl ¶
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
// piece.
io.ReaderAt
io.WriterAt
// Called when the client believes the piece data will pass a hash check.
// The storage can move or mark the piece data as read-only as it sees
// fit.
MarkComplete() error
MarkNotComplete() error
// Returns true if the piece is complete.
GetIsComplete() bool
}
Interacts with torrent piece data.
type Torrent ¶
type Torrent struct {
TorrentImpl
}
Click to show internal directories.
Click to hide internal directories.