pub struct AsyncDataReader<T: DdsType + Send + Sync + 'static> { /* private fields */ }Expand description
Async-Wrapper um DataReader<T>.
Implementations§
Source§impl<T: DdsType + Send + Sync + 'static> AsyncDataReader<T>
impl<T: DdsType + Send + Sync + 'static> AsyncDataReader<T>
Sourcepub fn take_stream(&self) -> SampleStream<T>
pub fn take_stream(&self) -> SampleStream<T>
Spec §2.2.1 take_stream — Stream<Item = T>.
Live-Mode (Reader hat runtime_handle()): der Stream
registriert sich mit register_user_reader_waker an der
Runtime; cx.waker() wird beim naechsten Sample-Zufluss
gefeuert (kein Polling). Offline-Mode: detached-Thread-Sleep
als Polling-Fallback (Spec §3.3).
Sourcepub async fn take(&self, timeout: Duration) -> Result<Vec<T>>
pub async fn take(&self, timeout: Duration) -> Result<Vec<T>>
Spec §2.2.2 take(timeout). Resolves Ok mit Vec<T> wenn Samples
verfuegbar sind oder Timeout abgelaufen ist (dann leerer Vec
statt Err — analog take() sync).
§Errors
Wire-/Decode-Fehler wie sync.
Sourcepub async fn wait_for_matched_publication(
&self,
min_count: usize,
timeout: Duration,
) -> Result<()>
pub async fn wait_for_matched_publication( &self, min_count: usize, timeout: Duration, ) -> Result<()>
Sourcepub fn matched_publication_count(&self) -> usize
pub fn matched_publication_count(&self) -> usize
Spec §2.2.4 matched_publication_count (synchron).
Sourcepub fn as_sync(&self) -> &DataReader<T>
pub fn as_sync(&self) -> &DataReader<T>
Liefert die zugrundeliegende sync-Variante.
Sourcepub fn qos(&self) -> DataReaderQos
pub fn qos(&self) -> DataReaderQos
Liefert die DataReaderQos.
Sourcepub fn data_available_stream(&self) -> DataAvailableStream<T>
pub fn data_available_stream(&self) -> DataAvailableStream<T>
Spec §6.1 data_available_stream — Stream<Item = ()>.
Emittiert pro Sample-Zufluss ein ()-Event; Caller ruft danach
take() / iteriert ueber take_stream() um die Samples zu
holen. Konsumiert keine Samples (im Gegensatz zu
Self::take_stream).
Live-Mode: registriert sich am Reader-Slot der Runtime
(register_user_reader_waker) — Wake erfolgt beim
sample_tx.send durch die Runtime, kein Polling. Offline-
Mode: detached-Thread-Sleep als Polling-Fallback.
Sourcepub fn publication_matched_stream(&self) -> PublicationMatchedStream<T>
pub fn publication_matched_stream(&self) -> PublicationMatchedStream<T>
Spec §6.2 publication_matched_stream —
Stream<Item = SubscriptionMatchedStatus>. Emittiert den
vollen Reader-side Match-Status (DDS 1.4 §2.2.4.1
SUBSCRIPTION_MATCHED) jedes Mal wenn sich der Count an
matched Publications (Writers) aendert. Felder:
total_count (cumulative), total_count_change (delta),
current_count (currently matched), current_count_change
(signed delta), last_publication_handle.