Skip to main content

Crate zerodds_dcps_async

Crate zerodds_dcps_async 

Source
Expand description

ZeroDDS async-DCPS-API (zerodds-async-1.0).

Crate zerodds-dcps-async. Safety classification: STANDARD.

Runtime-agnostische async-Wrappers um die DCPS-Sync-API. Newtypes teilen den internen Arc<...> mit den Sync-Pendants — kein State-Duplikat, kein Performance-Overhead.

§Beispiel

use zerodds_dcps_async::AsyncDomainParticipantFactory;
use futures_core::Stream;
use std::time::Duration;

#[tokio::main]
async fn main() {
    let factory = AsyncDomainParticipantFactory::instance();
    let participant = factory.create_participant_offline(0);
    // ... topic + reader + writer wie sync.
    let writer = /* ... */;
    let reader = /* ... */;

    // write & take laufen ohne Thread-Block.
    writer.write(&sample).await.unwrap();
    let samples = reader.take(Duration::from_secs(1)).await.unwrap();
}

Spec: docs/specs/zerodds-async-1.0.md.

Structs§

AsyncDataReader
Async-Wrapper um DataReader<T>.
AsyncDataWriter
Async-Wrapper um DataWriter<T>.
AsyncDomainParticipant
Async-Wrapper um DomainParticipant. Topics, Pubs und Subs werden ueber die Sync-API erzeugt; nur der Newtype wechselt das Async-API frei.
AsyncDomainParticipantFactory
Async-Wrapper um den Sync-Singleton. instance() liefert immer den gleichen Singleton; create_participant-Methoden teilen den State mit der sync-API.
AsyncPublisher
Async-Wrapper um Publisher.
AsyncSubscriber
Async-Wrapper um Subscriber.
DataAvailableStream
Stream der “data available”-Events. Yieldet () jedes Mal wenn neue Samples im Reader sind. Konsumiert keine Samples — Caller muss take() oder take_stream separat aufrufen.
DataReaderQos
QoS-Set fuer einen DataReader — Spec §2.2.2.5.2.
DataWriterQos
QoS-Set fuer einen DataWriter — Spec §2.2.2.4.2 (alle Policies, die am DataWriter setzbar sind).
DomainParticipantQos
QoS-Set fuer den DomainParticipant — Spec §2.2.2.2.2.
InstanceHandle
Opaker InstanceHandle_t (DDS-DCPS 1.4 §2.3.3).
PublicationMatchedStream
Stream der publication-matched-Counts. Yieldet jeden neuen Count.
PublisherQos
QoS-Set fuer den Publisher — Spec §2.2.2.4.1.
SampleStream
Stream uber Reader-Samples. Endet wenn der Reader gedroppt wird.
SubscriberQos
QoS-Set fuer den Subscriber — Spec §2.2.2.5.1.
SubscriptionMatchedStatus
SUBSCRIPTION_MATCHED_STATUS — Spec §2.2.4.1 + §2.2.2.5.6.
Topic
Typed Topic-Handle.
TopicQos
QoS-Set fuer einen Topic — Spec §2.2.2.3.2.

Enums§

DdsError
Fehler aus DCPS-Operationen. Halbwegs analog zum Spec- ReturnCode_t-Enum; wir lassen allerdings RETCODE_OK weg (stattdessen Result::Ok) und mergen BAD_PARAMETER + PRECONDITION_NOT_MET wo die Unterscheidung nichts hilft.

Traits§

DdsType
Typ, der via DDS published/subscribed werden kann.

Type Aliases§

Result
Kurzform fuer DCPS-Ergebnisse.