mirror of
https://github.com/Astatin3/unshell.git
synced 2026-06-08 22:38:01 -06:00
Simplify endpoint outcome state handling
This commit is contained in:
@@ -6,7 +6,7 @@
|
||||
use std::collections::{BTreeMap, VecDeque};
|
||||
|
||||
use crossbeam_channel::unbounded;
|
||||
use unshell::protocol::tree::{ChildRoute, ConnectionState, ProtocolEndpoint};
|
||||
use unshell::protocol::tree::{ChildRoute, ProtocolEndpoint};
|
||||
|
||||
use crate::model::{DemoTree, NodeId, ScenarioDefinition, Selection};
|
||||
|
||||
@@ -42,7 +42,7 @@ impl Simulation {
|
||||
.iter()
|
||||
.map(|child_id| ChildRoute {
|
||||
path: tree.node(*child_id).path.clone(),
|
||||
state: ConnectionState::Registered,
|
||||
registered: true,
|
||||
})
|
||||
.collect::<Vec<_>>();
|
||||
|
||||
|
||||
@@ -87,12 +87,11 @@ impl Simulation {
|
||||
node_id: NodeId,
|
||||
outcome: unshell::protocol::tree::EndpointOutcome,
|
||||
) -> Result<(), SimError> {
|
||||
if outcome.dropped {
|
||||
self.record_trace(node_id, "packet dropped".to_owned());
|
||||
}
|
||||
|
||||
if let Some((route, frame)) = outcome.forward {
|
||||
match route {
|
||||
match outcome {
|
||||
unshell::protocol::tree::EndpointOutcome::Dropped => {
|
||||
self.record_trace(node_id, "packet dropped".to_owned());
|
||||
}
|
||||
unshell::protocol::tree::EndpointOutcome::Forward { route, frame } => match route {
|
||||
RouteDecision::Child(index) => {
|
||||
let child_id = self.nodes[node_id.0]
|
||||
.children
|
||||
@@ -147,13 +146,12 @@ impl Simulation {
|
||||
RouteDecision::Drop => {
|
||||
self.record_trace(node_id, "route decision dropped frame".to_owned());
|
||||
}
|
||||
},
|
||||
unshell::protocol::tree::EndpointOutcome::Local(event) => {
|
||||
self.handle_local_event(node_id, event)?;
|
||||
}
|
||||
}
|
||||
|
||||
if let Some(event) = outcome.event {
|
||||
self.handle_local_event(node_id, event)?;
|
||||
}
|
||||
|
||||
Ok(())
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user