internal PiecePicker CreateStandardPicker() { PiecePicker picker; if (ClientEngine.SupportsEndgameMode) { picker = new EndGameSwitcher(new StandardPicker(), new EndGamePicker(), torrent.PieceLength / Piece.BlockSize, this); } else { picker = new StandardPicker(); } picker = new RandomisedPicker(picker); picker = new RarestFirstPicker(picker); picker = new PriorityPicker(picker); return(picker); }
public RarestFirstPickerTests() { tester = new TestPicker(); rarest = new RarestFirstPicker(tester); rarest.Initialise(rig.Manager.Bitfield, rig.Torrent.Files, new List <Piece>()); peers = new List <PeerId>(); for (int i = 0; i < 5; i++) { peers.Add(new PeerId(new Peer(new string((char)(i + 'a'), 20), new Uri("tcp://aaa")), rig.Manager)); } for (int i = 0; i < rig.Manager.Bitfield.Length; i++) { for (int j = 0; j < peers.Count; j++) { peers[j].BitField[i] = i % (j + 1) == 0; } } peers[0].BitField.SetAll(true); }