diff --git a/src/runtime2/communication.rs b/src/runtime2/communication.rs index c615f06d5d5d08a99f8dbae16ff36c34639be553..c092fc99311d9c12835221b9707fe1e20b6827be 100644 --- a/src/runtime2/communication.rs +++ b/src/runtime2/communication.rs @@ -17,6 +17,11 @@ impl PortId { } } +pub struct CompPortIds { + pub comp: CompId, + pub port: PortId, +} + #[derive(Debug, PartialEq, Eq, Clone, Copy)] pub enum PortKind { Putter, @@ -56,9 +61,29 @@ pub struct DataMessage { pub content: ValueGroup, } +#[derive(Debug)] +pub enum PortAnnotationKind { + Getter(PortAnnotationGetter), + Putter(PortAnnotationPutter), +} + +#[derive(Debug)] +pub struct PortAnnotationGetter { + pub self_comp_id: CompId, + pub self_port_id: PortId, + pub peer_comp_id: CompId, + pub peer_port_id: PortId, +} + +#[derive(Debug)] +pub struct PortAnnotationPutter { + pub self_comp_id: CompId, + pub self_port_id: PortId, +} + #[derive(Debug)] pub struct MessageDataHeader { - pub expected_mapping: Vec<(PortId, Option)>, + pub expected_mapping: Vec<(PortAnnotationKind, Option)>, pub new_mapping: u32, pub source_port: PortId, pub target_port: PortId,