internal void ChangePicker(PiecePicker picker, BitField bitfield, ITorrentData data) { if (UnhashedPieces.Length != bitfield.Length) { UnhashedPieces = new BitField(bitfield.Length); } picker = new IgnoringPicker(bitfield, picker); picker = new IgnoringPicker(UnhashedPieces, picker); IEnumerable <Piece> pieces = Picker == null ? new List <Piece>() : Picker.ExportActiveRequests(); picker.Initialise(bitfield, data, pieces); Picker = picker; }
internal void ChangePicker(PiecePicker picker, BitField bitfield, TorrentFile[] files) { if (unhashedPieces.Length != bitfield.Length) { unhashedPieces = new BitField(bitfield.Length); } picker = new IgnoringPicker(bitfield, picker); picker = new IgnoringPicker(unhashedPieces, picker); IEnumerable <Piece> pieces = Picker == null ? new List <Piece>() : Picker.ExportActiveRequests(); picker.Initialise(bitfield, files, pieces); this.picker = picker; }