pub fn forward_bridge_rx(
        &mut self,
        b_in: &str,
        out: HashMap<String, channel::Sender<Message>>,
    ) -> anyhow::Result<()> {
        assert!(!out.is_empty());
        info!("setting communication {} -> {} topics", b_in, out.len());
        let rx: Receiver = self.take_bridge_rx(b_in)?;
        let b_in = b_in.to_owned();
        let handle = tokio::task::spawn_blocking(move || loop {
            let msg = rx
                .recv()
                .unwrap_or_else(|err| todo!("receiving message from {} failed: {}", b_in, err));
            assert!(out.contains_key(&msg.topic));
            let topic = msg.topic.clone();
            out[&topic].send(msg).unwrap_or_else(|err| {
                todo!(
                    "sending message from {} to topic {} failed: {}",
                    b_in,
                    topic,
                    err
                )
            });
        });
        self.pipes.push(handle);
        Ok(())
    }
/// Forward all messages from module N b_in to crossbeam channel corresponding to topic id
/// Spawns pipe handler in a tokio blocking task thread
/// - b_in name of incoming bridge from Self::bridges
Forward all messages from module N b_in to crossbeam channel corresponding to topic id
Spawns pipe handler in a tokio blocking task thread
b_in name of incoming bridge from Self::bridges
Forward all messages from module N b_in to crossbeam channel corresponding to topic id Spawns pipe handler in a tokio blocking task thread b_in name of incoming bridge from Self :: bridges
pub fn forward_bridge_rx(
        &mut self,
        b_in: &str,
        out: HashMap<String, channel::Sender<Message>>,
    ) -> anyhow::Result<()> {
        assert!(!out.is_empty());
        info!("setting communication {} -> {} topics", b_in, out.len());
        let rx: Receiver = self.take_bridge_rx(b_in)?;
        let b_in = b_in.to_owned();
        let handle = tokio::task::spawn_blocking(move || loop {
            let msg = rx
                .recv()
                .unwrap_or_else(|err| todo!("receiving message from {} failed: {}", b_in, err));
            assert!(out.contains_key(&msg.topic));
            let topic = msg.topic.clone();
            out[&topic].send(msg).unwrap_or_else(|err| {
                todo!(
                    "sending message from {} to topic {} failed: {}",
                    b_in,
                    topic,
                    err
                )
            });
        });
        self.pipes.push(handle);
        Ok(())
    }
pub fn forward_bridge_rx ( & mut self , b_in : & str , out : HashMap < String , channel :: Sender < Message > > , ) -> anyhow :: Result < ( ) > { assert ! ( out is_empty ( ) ) ; info ! ( " " b_in out len ( ) ) ; let rx : Receiver = self . take_bridge_rx ( b_in ) ? ; let b_in = b_in . to_owned ( ) ; let handle = tokio :: task :: spawn_blocking ( move | | loop { let msg = rx . recv ( ) . unwrap_or_else ( | err | todo ! ( " " b_in err ) ) ; assert ! ( out contains_key ( msg topic ) ) ; let topic = msg . topic . clone ( ) ; out [ & topic ] . send ( msg ) . unwrap_or_else ( | err | { todo ! ( " " b_in topic err ) } ) ; } ) ; self . pipes . push ( handle ) ; Ok ( ( ) ) }
Forward all messages from module N b_in to crossbeam channel corresponding to topic id
Spawns pipe handler in a tokio blocking task thread
 b_in name of incoming bridge from Self::bridges
Forward all messages from module N b_in to crossbeam channel corresponding to topic id Spawns pipe handler in a tokio blocking task thread b_in name of incoming bridge from Self :: bridges
&mut self
b_in
&str
out
HashMap<String, channel::Sender<Message>>
&mut self
b_in
&str
out
HashMap<String, channel::Sender<Message>>