wip handling root request
This commit is contained in:
@@ -49,11 +49,11 @@ pub struct P2PClientApp {
|
||||
|
||||
impl P2PClientApp {
|
||||
pub fn new(cmd_tx: Sender<NetworkCommand>, event_rx: Receiver<NetworkEvent>) -> Self {
|
||||
let (root_hash, tree_content) = MerkleNode::generate_base_tree();
|
||||
//let (root_hash, tree_content) = MerkleNode::generate_base_tree();
|
||||
|
||||
let mut loaded_fs = HashMap::new();
|
||||
let tree = MerkleTree::new(tree_content, root_hash);
|
||||
loaded_fs.insert("bob".to_string(), tree);
|
||||
//let tree = MerkleTree::new(tree_content, root_hash);
|
||||
//loaded_fs.insert("bob".to_string(), tree);
|
||||
|
||||
Self {
|
||||
remaining: std::time::Duration::from_secs(0),
|
||||
@@ -123,23 +123,24 @@ impl eframe::App for P2PClientApp {
|
||||
NetworkEvent::FileTreeReceived(_peer_id, _) => {
|
||||
todo!();
|
||||
|
||||
// self.loaded_tree_nodes.insert(_peer_id, tree);
|
||||
self.status_message = "🔄 File tree updated successfully.".to_string();
|
||||
//self.loaded_tree_nodes.insert(_peer_id, tree);
|
||||
//self.status_message = "🔄 File tree updated successfully.".to_string();
|
||||
}
|
||||
NetworkEvent::FileTreeRootReceived(peer_id, root_hash) => {
|
||||
todo!();
|
||||
// todo!();
|
||||
|
||||
// self.status_message = format!("🔄 Received Merkle Root from {}: {}", peer_id, &root_hash[..8]);
|
||||
//
|
||||
//
|
||||
// self.active_peer_id = Some(peer_id.clone());
|
||||
//
|
||||
//
|
||||
// // Request the content of the root directory immediately
|
||||
// let _ = self.network_cmd_tx.send(NetworkCommand::RequestDirectoryContent(
|
||||
// peer_id,
|
||||
// root_hash,
|
||||
// ));
|
||||
self.status_message = format!(
|
||||
"🔄 Received Merkle Root from {}: {}",
|
||||
peer_id,
|
||||
&root_hash[..8]
|
||||
);
|
||||
|
||||
//self.active_peer_id = Some(peer_id.clone());
|
||||
|
||||
// Request the content of the root directory immediately
|
||||
/*let _ = self
|
||||
.network_cmd_tx
|
||||
.send(NetworkCommand::RequestDirectoryContent(peer_id, root_hash));*/
|
||||
}
|
||||
NetworkEvent::Connected(ip) => {
|
||||
self.server_status = ServerStatus::Connected;
|
||||
@@ -360,11 +361,11 @@ impl eframe::App for P2PClientApp {
|
||||
.loaded_fs
|
||||
.contains_key(self.active_peer.as_ref().unwrap())
|
||||
{
|
||||
todo!();
|
||||
// let _ = self.network_cmd_tx.send(NetworkCommand::RequestDirectoryContent(
|
||||
// peer.clone(),
|
||||
// peer.clone(),
|
||||
// ));
|
||||
//todo!();
|
||||
let _ = self.network_cmd_tx.send(NetworkCommand::Discover(
|
||||
peer.clone(),
|
||||
"root".to_string(),
|
||||
));
|
||||
}
|
||||
}
|
||||
selectable.context_menu(|ui| {
|
||||
@@ -508,7 +509,13 @@ impl P2PClientApp {
|
||||
entry.content_hash,
|
||||
tree,
|
||||
depth + 1,
|
||||
Some(entry.filename),
|
||||
Some(
|
||||
entry
|
||||
.filename
|
||||
.as_slice()
|
||||
.try_into()
|
||||
.expect("incorrect size"),
|
||||
),
|
||||
);
|
||||
}
|
||||
});
|
||||
@@ -529,7 +536,7 @@ impl P2PClientApp {
|
||||
.enabled(true)
|
||||
.show(ui, |ui| {
|
||||
for child in &node.children_hashes {
|
||||
self.draw_file_node(ui, child.clone(), tree, depth + 1, None);
|
||||
self.draw_file_node(ui, child.content_hash, tree, depth + 1, None);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user