use std::{future::Future, pin::Pin};
use crate::infrastructure::status::{
LivelinessChangedStatus, RequestedDeadlineMissedStatus, RequestedIncompatibleQosStatus,
SampleLostStatus, SampleRejectedStatus, SubscriptionMatchedStatus,
};
use super::{data_reader::DataReaderAsync, subscriber::SubscriberAsync};
pub trait SubscriberListenerAsync {
fn on_data_on_readers(
&mut self,
_the_subscriber: SubscriberAsync,
) -> Pin<Box<dyn Future<Output = ()> + Send + '_>> {
Box::pin(std::future::ready(()))
}
fn on_data_available(
&mut self,
_the_reader: DataReaderAsync<()>,
) -> Pin<Box<dyn Future<Output = ()> + Send + '_>> {
Box::pin(std::future::ready(()))
}
fn on_sample_rejected(
&mut self,
_the_reader: DataReaderAsync<()>,
_status: SampleRejectedStatus,
) -> Pin<Box<dyn Future<Output = ()> + Send + '_>> {
Box::pin(std::future::ready(()))
}
fn on_liveliness_changed(
&mut self,
_the_reader: DataReaderAsync<()>,
_status: LivelinessChangedStatus,
) -> Pin<Box<dyn Future<Output = ()> + Send + '_>> {
Box::pin(std::future::ready(()))
}
fn on_requested_deadline_missed(
&mut self,
_the_reader: DataReaderAsync<()>,
_status: RequestedDeadlineMissedStatus,
) -> Pin<Box<dyn Future<Output = ()> + Send + '_>> {
Box::pin(std::future::ready(()))
}
fn on_requested_incompatible_qos(
&mut self,
_the_reader: DataReaderAsync<()>,
_status: RequestedIncompatibleQosStatus,
) -> Pin<Box<dyn Future<Output = ()> + Send + '_>> {
Box::pin(std::future::ready(()))
}
fn on_subscription_matched(
&mut self,
_the_reader: DataReaderAsync<()>,
_status: SubscriptionMatchedStatus,
) -> Pin<Box<dyn Future<Output = ()> + Send + '_>> {
Box::pin(std::future::ready(()))
}
fn on_sample_lost(
&mut self,
_the_reader: DataReaderAsync<()>,
_status: SampleLostStatus,
) -> Pin<Box<dyn Future<Output = ()> + Send + '_>> {
Box::pin(std::future::ready(()))
}
}