flute 1.11.0

File Delivery over Unidirectional Transport (FLUTE)
Documentation
use super::{config, objectwriterbuilder, udpendpoint};
use pyo3::{exceptions::PyTypeError, prelude::*};
use std::time::SystemTime;

#[pyclass(unsendable)]
#[derive(Debug)]
pub struct MultiReceiver(crate::receiver::MultiReceiver);

#[pymethods]
impl MultiReceiver {
    #[new]
    fn new(writer: &objectwriterbuilder::ObjectWriterBuilder, config: &config::Config) -> Self {
        let c = config.0.clone();
        Self {
            0: crate::receiver::MultiReceiver::new(writer.inner.clone(), Some(c), false),
        }
    }

    fn push(&mut self, endpoint: &udpendpoint::UDPEndpoint, data: &[u8]) -> PyResult<()> {
        self.0
            .push(&endpoint.inner, data, SystemTime::now())
            .map_err(|e| PyTypeError::new_err(e.0.to_string()))
    }
}