Documentation ¶
Index ¶
- type PiecePicker
- func (p *PiecePicker) Available() uint32
- func (p *PiecePicker) CloseWebseedDownloader(src *webseedsource.WebseedSource)
- func (p *PiecePicker) HandleAllowedFast(pe *peer.Peer, i uint32)
- func (p *PiecePicker) HandleCancelDownload(pe *peer.Peer, i uint32)
- func (p *PiecePicker) HandleChoke(pe *peer.Peer, i uint32)
- func (p *PiecePicker) HandleDisconnect(pe *peer.Peer)
- func (p *PiecePicker) HandleHave(pe *peer.Peer, i uint32)
- func (p *PiecePicker) HandleSnubbed(pe *peer.Peer, i uint32)
- func (p *PiecePicker) HandleUnchoke(pe *peer.Peer, i uint32)
- func (p *PiecePicker) PickFor(pe *peer.Peer) (pp *piece.Piece, allowedFast bool)
- func (p *PiecePicker) PickWebseed(src *webseedsource.WebseedSource) *WebseedDownloadSpec
- func (p *PiecePicker) RequestedPeers(i uint32) []*peer.Peer
- func (p *PiecePicker) RequestedWebseedSource(i uint32) *webseedsource.WebseedSource
- func (p *PiecePicker) WebseedStopAt(src *webseedsource.WebseedSource, i uint32) (closed bool)
- type Range
- type WebseedDownloadSpec
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type PiecePicker ¶
type PiecePicker struct {
// contains filtered or unexported fields
}
PiecePicker runs an algorithm to determine which piece to download next, from which peer or webseed source. PiecePicker keeps track availability of pieces among peers.
func New ¶
func New(pieces []piece.Piece, maxDuplicateDownload int, webseedSources []*webseedsource.WebseedSource) *PiecePicker
New returns a new PiecePicker.
func (*PiecePicker) Available ¶
func (p *PiecePicker) Available() uint32
Available returns the number of available pieces among the swarm.
func (*PiecePicker) CloseWebseedDownloader ¶ added in v0.7.0
func (p *PiecePicker) CloseWebseedDownloader(src *webseedsource.WebseedSource)
CloseWebseedDownloader closes the download from a webseed source.
func (*PiecePicker) HandleAllowedFast ¶
func (p *PiecePicker) HandleAllowedFast(pe *peer.Peer, i uint32)
HandleAllowedFast must be called to set the allowed-fast status of the piece at peer.
func (*PiecePicker) HandleCancelDownload ¶
func (p *PiecePicker) HandleCancelDownload(pe *peer.Peer, i uint32)
HandleCancelDownload must be called to update indexes when a piece download is canceled from the peer.
func (*PiecePicker) HandleChoke ¶ added in v0.3.0
func (p *PiecePicker) HandleChoke(pe *peer.Peer, i uint32)
HandleChoke must be called to set choke status of the remote peer.
func (*PiecePicker) HandleDisconnect ¶
func (p *PiecePicker) HandleDisconnect(pe *peer.Peer)
HandleDisconnect must be called to remove the peer from internal indexes.
func (*PiecePicker) HandleHave ¶
func (p *PiecePicker) HandleHave(pe *peer.Peer, i uint32)
HandleHave must be called to set the availability of the piece at the peer.
func (*PiecePicker) HandleSnubbed ¶
func (p *PiecePicker) HandleSnubbed(pe *peer.Peer, i uint32)
HandleSnubbed must be called to set the peer as snubbed when it is slow or stalled.
func (*PiecePicker) HandleUnchoke ¶ added in v0.3.0
func (p *PiecePicker) HandleUnchoke(pe *peer.Peer, i uint32)
HandleUnchoke must be called to unset choke status of the remote peer.
func (*PiecePicker) PickFor ¶ added in v0.3.0
PickFor selects the next piece for download from the peer.
func (*PiecePicker) PickWebseed ¶ added in v0.7.0
func (p *PiecePicker) PickWebseed(src *webseedsource.WebseedSource) *WebseedDownloadSpec
PickWebseed returns the next spec for downloading files from webseed sources.
func (*PiecePicker) RequestedPeers ¶
func (p *PiecePicker) RequestedPeers(i uint32) []*peer.Peer
RequestedPeers returns the number of peers that the piece with the index is requested from.
func (*PiecePicker) RequestedWebseedSource ¶ added in v0.8.0
func (p *PiecePicker) RequestedWebseedSource(i uint32) *webseedsource.WebseedSource
RequestedWebseedSource returns the number of webseed sources that the piece with the index is requested from.
func (*PiecePicker) WebseedStopAt ¶ added in v0.8.0
func (p *PiecePicker) WebseedStopAt(src *webseedsource.WebseedSource, i uint32) (closed bool)
WebseedStopAt sets the webseed downloader to stop at index `i`.
type Range ¶ added in v0.7.0
type Range struct {
Begin, End uint32
}
Range is a piece index range. Begin is inclusive, End is exclusive.
type WebseedDownloadSpec ¶ added in v0.7.0
type WebseedDownloadSpec struct { Source *webseedsource.WebseedSource Begin uint32 // piece index End uint32 // piece index }
WebseedDownloadSpec contains information for downloading torrent data from webseed sources.