Use in chunk_tracker
This commit is contained in:
parent
e771162fa7
commit
8135b31a5d
7 changed files with 87 additions and 29 deletions
|
|
@ -8,7 +8,9 @@ use anyhow::Context;
|
|||
use size_format::SizeFormatterBinary as SF;
|
||||
use tracing::{debug, info, warn};
|
||||
|
||||
use crate::{chunk_tracker::ChunkTracker, file_ops::FileOps, type_aliases::FileStorage};
|
||||
use crate::{
|
||||
bitv::BitV, chunk_tracker::ChunkTracker, file_ops::FileOps, type_aliases::FileStorage,
|
||||
};
|
||||
|
||||
use super::{paused::TorrentStatePaused, ManagedTorrentInfo};
|
||||
|
||||
|
|
@ -86,7 +88,7 @@ impl TorrentStateInitializing {
|
|||
})?;
|
||||
|
||||
let chunk_tracker = ChunkTracker::new(
|
||||
initial_check_results.have_pieces,
|
||||
initial_check_results.have_pieces.into_dyn(),
|
||||
initial_check_results.selected_pieces,
|
||||
self.meta.lengths,
|
||||
&self.meta.file_infos,
|
||||
|
|
|
|||
|
|
@ -835,7 +835,7 @@ impl<'a> PeerConnectionHandler for &'a PeerHandler {
|
|||
|
||||
fn serialize_bitfield_message_to_buf(&self, buf: &mut Vec<u8>) -> anyhow::Result<usize> {
|
||||
let g = self.state.lock_read("serialize_bitfield_message_to_buf");
|
||||
let msg = Message::Bitfield(ByteBuf(g.get_chunks()?.get_have_pieces().as_raw_slice()));
|
||||
let msg = Message::Bitfield(ByteBuf(g.get_chunks()?.get_have_pieces().as_bytes()));
|
||||
let len = msg.serialize(buf, &|| None)?;
|
||||
trace!("sending: {:?}, length={}", &msg, len);
|
||||
Ok(len)
|
||||
|
|
|
|||
|
|
@ -187,7 +187,7 @@ impl AsyncRead for FileStream {
|
|||
// if the piece is not there, register to wake when it is
|
||||
// check if we have the piece for real
|
||||
let have = poll_try_io!(self.torrent.with_chunk_tracker(|ct| {
|
||||
let have = ct.get_have_pieces()[current.id.get() as usize];
|
||||
let have = ct.get_have_pieces().as_slice()[current.id.get() as usize];
|
||||
if !have {
|
||||
self.streams
|
||||
.register_waker(self.stream_id, cx.waker().clone());
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue