Documentation ¶
Index ¶
- Variables
- type Peer
- type PieceDownloader
- func (d *PieceDownloader) CancelPending()
- func (d *PieceDownloader) Choked()
- func (d *PieceDownloader) Done() bool
- func (d *PieceDownloader) GotBlock(begin uint32, data []byte) error
- func (d *PieceDownloader) Rejected(begin, length uint32) bool
- func (d *PieceDownloader) RequestBlocks(queueLength int)
Constants ¶
This section is empty.
Variables ¶
View Source
var ( // ErrBlockDuplicate is returned from PieceDownloader.GotBlock method when the received block is already present. ErrBlockDuplicate = errors.New("received duplicate block") // ErrBlockNotRequested is returned from PieceDownloader.GotBlock method when the received block is not requested yet. ErrBlockNotRequested = errors.New("received not requested block") // ErrBlockInvalid is returned from PieceDownloader.GotBlock method when the received block is not in request list. ErrBlockInvalid = errors.New("received block is invalid") )
Functions ¶
This section is empty.
Types ¶
type Peer ¶ added in v0.5.0
type Peer interface { RequestPiece(index, begin, length uint32) CancelPiece(index, begin, length uint32) EnabledFast() bool }
Peer of a Torrent.
type PieceDownloader ¶
type PieceDownloader struct { Piece *piece.Piece Peer Peer AllowedFast bool Buffer bufferpool.Buffer // contains filtered or unexported fields }
PieceDownloader downloads all blocks of a piece from a peer.
func New ¶
func New(pi *piece.Piece, pe Peer, allowedFast bool, buf bufferpool.Buffer) *PieceDownloader
New returns a new PieceDownloader.
func (*PieceDownloader) CancelPending ¶
func (d *PieceDownloader) CancelPending()
CancelPending is called to cancel pending requests to the peer. Must be called when remaining blocks are downloaded from another peer.
func (*PieceDownloader) Choked ¶
func (d *PieceDownloader) Choked()
Choked must be called when the peer has choked us. This will cancel pending reuqests.
func (*PieceDownloader) Done ¶
func (d *PieceDownloader) Done() bool
Done returns true if all blocks of the piece has been downloaded.
func (*PieceDownloader) GotBlock ¶
func (d *PieceDownloader) GotBlock(begin uint32, data []byte) error
GotBlock must be called when a block is received from the peer.
func (*PieceDownloader) Rejected ¶
func (d *PieceDownloader) Rejected(begin, length uint32) bool
Rejected must be called when the peer has rejected a piece request.
func (*PieceDownloader) RequestBlocks ¶
func (d *PieceDownloader) RequestBlocks(queueLength int)
RequestBlocks is called to request remaining blocks of the piece up to `queueLength`.
Click to show internal directories.
Click to hide internal directories.