Files
unshell/unshell-manager/src/manager/connection.rs
T

37 lines
983 B
Rust
Raw Normal View History

2025-12-20 22:39:56 -07:00
use unshell_lib::{Announcement, Result};
2025-12-21 00:35:28 -07:00
// use crate::network::Stream;
2025-12-20 22:39:56 -07:00
use crate::Manager;
2025-11-25 15:22:14 -07:00
impl Manager {
2025-11-25 17:31:09 -07:00
pub fn add_connection(&mut self, connection: Box<dyn Stream<Announcement>>) {
2025-11-25 15:22:14 -07:00
self.connections.push(connection);
}
pub fn prune_connections(&mut self) {
self.connections.retain(|c| c.is_alive());
}
pub fn recv_connection_announcements(&mut self) {
// Collect all incoming announcements
let announcements = self
.connections
2025-11-25 17:31:09 -07:00
.iter_mut()
.map(|c| c.try_read())
2025-11-25 15:22:14 -07:00
.flat_map(|array| array)
.collect::<Vec<Announcement>>();
for announcement in announcements {
self.recv_announcement(&announcement)
}
}
2025-11-25 17:31:09 -07:00
2025-12-21 00:35:28 -07:00
// pub fn broadcast(&mut self, announcement: Announcement) -> Result<()> {
// for connection in &mut self.connections {
// connection.write(announcement.clone())?;
// }
// Ok(())
// }
2025-11-25 15:22:14 -07:00
}