From bd16d99233dd105264ed31b7924b784c9ab046fd 2020-07-01 10:16:17 From: Christopher Esterhuyse Date: 2020-07-01 10:16:17 Subject: [PATCH] added endpoint->port field to session transform structure --- diff --git a/src/common.rs b/src/common.rs index 69871d09bb78f4658fcb7651b153150e6d4641cd..21af2700159a7b95ee62aa762d24275b6aadf333 100644 --- a/src/common.rs +++ b/src/common.rs @@ -50,7 +50,7 @@ pub struct U32Stream { )] #[repr(transparent)] pub struct PortId(Id); -#[derive(Default, Debug, Clone, Eq, PartialEq, Ord, PartialOrd)] +#[derive(Default, Clone, Eq, PartialEq, Ord, PartialOrd)] pub struct Payload(Arc>); #[derive( Debug, Eq, PartialEq, Clone, Hash, Copy, Ord, PartialOrd, serde::Serialize, serde::Deserialize, @@ -174,6 +174,11 @@ impl Debug for ProtoComponentId { write!(f, "pcID({}'{})", self.0.connector_id, self.0.u32_suffix) } } +impl Debug for Payload { + fn fmt(&self, f: &mut Formatter) -> std::fmt::Result { + write!(f, "Payload{:x?}", self.as_slice()) + } +} impl std::ops::Not for Polarity { type Output = Self; fn not(self) -> Self::Output { diff --git a/src/macros.rs b/src/macros.rs index 5ef220b075dfc0d5e665dd6ebb2097a6bda75141..0ead5431e76a9824f31e9ef7dad773a40f431b98 100644 --- a/src/macros.rs +++ b/src/macros.rs @@ -1,8 +1,7 @@ macro_rules! endptlog { ($logger:expr, $($arg:tt)*) => {{ - let w = $logger.line_writer(); - let _ = write!(w, "[ENDPT]"); - let _ = writeln!(w, $($arg)*); + // let w = $logger.line_writer(); + // let _ = writeln!(w, $($arg)*); }}; } macro_rules! log { diff --git a/src/runtime/mod.rs b/src/runtime/mod.rs index 35dae0109db4b4137b07db5a3737d1fa1bfae2b6..a3a34022024d40b6bab9efb8005f64af102c02f3 100644 --- a/src/runtime/mod.rs +++ b/src/runtime/mod.rs @@ -93,6 +93,7 @@ enum SetupMsg { struct SessionInfo { serde_proto_description: SerdeProtocolDescription, port_info: PortInfo, + getter_for_incoming: Vec, proto_components: HashMap, } #[derive(Debug, Clone)] diff --git a/src/runtime/setup.rs b/src/runtime/setup.rs index 04f33bc2d60af4ee5dc01ad38c9684e01f929f94..ce8aa92e5852bc1acee49cd198dde65996f59e88 100644 --- a/src/runtime/setup.rs +++ b/src/runtime/setup.rs @@ -643,6 +643,12 @@ fn session_optimize( port_info: cu.port_info.clone(), proto_components: cu.proto_components.clone(), serde_proto_description: SerdeProtocolDescription(cu.proto_description.clone()), + getter_for_incoming: comm + .endpoint_manager + .endpoint_exts + .iter() + .map(|ee| ee.getter_for_incoming) + .collect(), }; unoptimized_map.insert(cu.id_manager.connector_id, my_session_info); log!(cu.logger, "Inserting my own info. Unoptimized subtree map is {:?}", &unoptimized_map); @@ -715,12 +721,16 @@ fn leader_session_map_optimize( } fn apply_optimizations( cu: &mut ConnectorUnphased, - _comm: &mut ConnectorCommunication, + comm: &mut ConnectorCommunication, session_info: SessionInfo, ) -> Result<(), ConnectError> { - let SessionInfo { proto_components, port_info, serde_proto_description } = session_info; + let SessionInfo { proto_components, port_info, serde_proto_description, getter_for_incoming } = + session_info; cu.port_info = port_info; cu.proto_components = proto_components; cu.proto_description = serde_proto_description.0; + for (ee, getter) in comm.endpoint_manager.endpoint_exts.iter_mut().zip(getter_for_incoming) { + ee.getter_for_incoming = getter; + } Ok(()) }