updated server and network manager to new style for setting config values

This commit is contained in:
michael-bailey 2022-09-15 08:02:10 +01:00
parent 5719bf98dd
commit f4d2148dfa
2 changed files with 26 additions and 33 deletions

View File

@ -1,4 +1,6 @@
use crate::config_manager::{ConfigManager, ConfigManagerDataMessage};
use crate::config_manager::{
ConfigManager, ConfigManagerDataMessage, ConfigValue,
};
use crate::network::listener::NetworkListener;
use crate::network::listener::{ListenerMessage, ListenerOutput};
@ -136,26 +138,23 @@ impl Actor for NetworkManager {
))
.map(
|out,
a: &mut NetworkManager,
actor: &mut NetworkManager,
ctx: &mut Context<NetworkManager>| {
use crate::config_manager::ConfigManagerDataResponse::GotValue;
use crate::config_manager::ConfigValue::Number;
let recipient = ctx.address().recipient();
let port = out
.map(|inner| inner.ok())
.ok()
.unwrap_or(None)
.unwrap_or(GotValue(Number(5600)));
println!("[NetworkManager] got port: {:?}", port);
if let GotValue(Number(port)) = port {
let nl = NetworkListener::new(
format!("0.0.0.0:{}", port),
recipient,
);
nl.do_send(ListenerMessage::StartListening);
a.listener_addr.replace(nl);
}
out.ok().map(|res| {
if let GotValue(Some(ConfigValue::Number(port))) = res {
println!("[NetworkManager] got port: {:?}", port);
let nl = NetworkListener::new(
format!("0.0.0.0:{}", port),
recipient,
);
nl.do_send(ListenerMessage::StartListening);
actor.listener_addr.replace(nl);
};
});
},
);
ctx.spawn(fut);

View File

@ -100,28 +100,22 @@ impl Actor for Server {
ConfigManager::shared().send(GetValue("Server.Name".to_owned())),
)
.map(|out, actor: &mut Server, _ctx| {
let out =
out.map(|inner| inner.ok()).ok().unwrap_or(None).unwrap_or(
GotValue(ConfigValue::String("<UNKNOWN>".to_owned())),
);
if let GotValue(ConfigValue::String(name)) = out {
actor.name = name;
}
out.ok().map(|res| {
if let GotValue(Some(ConfigValue::String(val))) = res {
actor.name = val
};
});
});
let owner_fut = wrap_future(
ConfigManager::shared().send(GetValue("Server.Owner".to_owned())),
)
.map(|out, actor: &mut Server, _ctx| {
let out =
out.map(|inner| inner.ok()).ok().unwrap_or(None).unwrap_or(
GotValue(ConfigValue::String("<UNKNOWN>".to_owned())),
);
if let GotValue(ConfigValue::String(owner)) = out {
actor.owner = owner;
}
out.ok().map(|res| {
if let GotValue(Some(ConfigValue::String(val))) = res {
actor.owner = val
};
});
});
ctx.spawn(name_fut);