C# Class OctoTorrent.Client.ChokeUnchokeManager

Inheritance: IUnchoker
显示文件 Open project: Eskat0n/OctoTorrent

Private Properties

Property Type Description
AllLists IEnumerable
AllocateSlots void
ExecuteReview void
ExecuteTyrantReview void
ReallocateSlot void
ReallocateSlots void
RejectPendingRequests void
SecondsBetween double
UnchokePeerList void

Public Methods

Method Description
Choke ( PeerId peer ) : void
ChokeUnchokeManager ( TorrentManager torrentManager, int minimumTimeBetweenReviews, int percentOfMaxRateToSkipReview ) : Common.System

Creates a new choke/unchoke manager for a torrent manager

TimePassed ( ) : void

Executed each tick of the client engine

Unchoke ( PeerId PeerToUnchoke ) : void
UnchokeReview ( ) : void

Private Methods

Method Description
AllLists ( ) : IEnumerable
AllocateSlots ( int alreadyUnchoked ) : void
ExecuteReview ( ) : void
ExecuteTyrantReview ( ) : void

Review method for BitTyrant Choking/Unchoking Algorithm

ReallocateSlot ( int &NumberOfSlots, int &MaximumUnchokes, PeerId peer ) : void

Reallocates the next slot with the specified peer if we can

ReallocateSlots ( int NumberOfSlots, int NumberOfUnchokedPeers ) : void

Reallocates the specified number of upload slots

RejectPendingRequests ( PeerId Peer ) : void

Checks the send queue of the peer to see if there are any outstanding pieces which they requested and rejects them as necessary

SecondsBetween ( System.DateTime FirstTime, System.DateTime SecondTime ) : double
UnchokePeerList ( List PeerList ) : void

Method Details

Choke() public method

public Choke ( PeerId peer ) : void
peer PeerId
return void

ChokeUnchokeManager() public method

Creates a new choke/unchoke manager for a torrent manager
public ChokeUnchokeManager ( TorrentManager torrentManager, int minimumTimeBetweenReviews, int percentOfMaxRateToSkipReview ) : Common.System
torrentManager TorrentManager
minimumTimeBetweenReviews int
percentOfMaxRateToSkipReview int
return Common.System

TimePassed() public method

Executed each tick of the client engine
public TimePassed ( ) : void
return void

Unchoke() public method

public Unchoke ( PeerId PeerToUnchoke ) : void
PeerToUnchoke PeerId
return void

UnchokeReview() public method

public UnchokeReview ( ) : void
return void