merge develop into master #20

Merged
michael-bailey merged 181 commits from develop into master 2023-12-01 21:48:28 +00:00
1 changed files with 36 additions and 16 deletions
Showing only changes of commit db5fd82e1a - Show all commits

View File

@ -1,14 +1,26 @@
use actix::{Actor, Addr, AsyncContext, Context, Handler, WeakRecipient};
use foundation::ClientDetails;
use crate::network::{Connection, ConnectionInitiator, InitiatorOutput, NetworkDataMessage, NetworkDataOutput};
use crate::network::listener::{ListenerMessage, ListenerOutput};
use crate::config_manager::ConfigManager;
use crate::network::listener::NetworkListener;
use crate::network::network_manager::Builder;
use crate::network::listener::{ListenerMessage, ListenerOutput};
use crate::network::network_manager::config::Config;
use crate::network::network_manager::messages::{NetworkMessage, NetworkOutput};
use crate::network::network_manager::messages::{
NetworkMessage, NetworkOutput,
};
use crate::network::network_manager::Builder;
use crate::network::{
Connection, ConnectionInitiator, InitiatorOutput, NetworkDataMessage,
NetworkDataOutput,
};
use actix::{
Actor, Addr, AsyncContext, Context, Handler, WeakAddr, WeakRecipient,
};
use foundation::ClientDetails;
/// # NetworkManager
/// this struct will handle all networking functionality.
///
pub struct NetworkManager {
config: Config,
config_manager: WeakAddr<ConfigManager>,
listener_addr: Option<Addr<NetworkListener>>,
delegate: WeakRecipient<NetworkOutput>,
initiators: Vec<Addr<ConnectionInitiator>>,
@ -17,14 +29,13 @@ pub struct NetworkManager {
impl NetworkManager {
pub fn new(delegate: WeakRecipient<NetworkOutput>) -> Addr<NetworkManager> {
NetworkManager {
config: Config {
port: 5600
},
config: Config { port: 5600 },
listener_addr: None,
delegate,
initiators: Vec::new(),
config_manager: ConfigManager::shared().downgrade(),
}
.start()
.start()
}
pub fn create(delegate: WeakRecipient<NetworkOutput>) -> Builder {
@ -115,8 +126,10 @@ impl Actor for NetworkManager {
fn started(&mut self, ctx: &mut Self::Context) {
println!("[NetworkManager] started with config {:?}", self.config);
let recipient = ctx.address().recipient();
self.listener_addr
.replace(NetworkListener::new(format!("0.0.0.0:{}", self.config.port), recipient));
self.listener_addr.replace(NetworkListener::new(
format!("0.0.0.0:{}", self.config.port),
recipient,
));
}
}
@ -138,9 +151,15 @@ impl Handler<NetworkMessage> for NetworkManager {
impl Handler<NetworkDataMessage> for NetworkManager {
type Result = NetworkDataOutput;
fn handle(&mut self, msg: NetworkDataMessage, ctx: &mut Self::Context) -> Self::Result {
fn handle(
&mut self,
msg: NetworkDataMessage,
ctx: &mut Self::Context,
) -> Self::Result {
match msg {
NetworkDataMessage::IsListening => NetworkDataOutput::IsListening(self.listener_addr.is_some())
NetworkDataMessage::IsListening => {
NetworkDataOutput::IsListening(self.listener_addr.is_some())
}
}
}
}
@ -185,7 +204,8 @@ impl From<Builder> for NetworkManager {
listener_addr: None,
delegate: builder.delegate,
initiators: Vec::default()
initiators: Vec::default(),
config_manager: ConfigManager::shared().downgrade(),
}
}
}
}