Changeset - bd16d99233dd
[Not reviewed]
v0.4.0
0 4 0
Christopher Esterhuyse - 5 years ago 2020-07-01 10:16:17
christopher.esterhuyse@gmail.com
added endpoint->port field to session transform structure
4 files changed with 21 insertions and 6 deletions:
0 comments (0 inline, 0 general)
src/common.rs
Show inline comments
 
@@ -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<Vec<u8>>);
 
#[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 {
src/macros.rs
Show inline comments
 
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 {
src/runtime/mod.rs
Show inline comments
 
@@ -93,6 +93,7 @@ enum SetupMsg {
 
struct SessionInfo {
 
    serde_proto_description: SerdeProtocolDescription,
 
    port_info: PortInfo,
 
    getter_for_incoming: Vec<PortId>,
 
    proto_components: HashMap<ProtoComponentId, ProtoComponent>,
 
}
 
#[derive(Debug, Clone)]
src/runtime/setup.rs
Show inline comments
 
@@ -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(())
 
}
0 comments (0 inline, 0 general)