Skip to main content

Crate zerodds_dcps

Crate zerodds_dcps 

Source
Expand description

Crate zerodds-dcps. Safety classification: STANDARD.

DCPS Public API (OMG DDS 1.4 §2.2.2): DomainParticipant, Publisher, Subscriber, Topic, DataWriter, DataReader.

Spec: OMG DDS 1.4 §2.2 (Data-Centric Publish-Subscribe Module) + DDSI-RTPS 2.5 §8.5 (Discovery + WLP) + XTypes 1.3 §7.6.3 (TypeLookup-Service Wiring).

§Schichten-Position

Layer 4 — Core Services. Bauend auf Layer 1 (foundation/cdr/qos/types/time-service), Layer 2 (rtps/discovery/transport-*), Layer 3 (idl/idl-rust/xml).

§Public API (Stand 1.0.0-rc.1)

§Beispiel

use zerodds_dcps::*;
let factory = DomainParticipantFactory::instance();
// Offline-Mode fuer Doctest (kein UDP-Multicast noetig).
let participant = factory.create_participant_offline(0, DomainParticipantQos::default());
let topic = participant
    .create_topic::<RawBytes>("Chatter", TopicQos::default())
    .expect("create_topic");
let publisher = participant.create_publisher(PublisherQos::default());
let writer = publisher
    .create_datawriter::<RawBytes>(&topic, DataWriterQos::default())
    .expect("create_datawriter");
writer.write(&RawBytes::new(vec![1, 2, 3])).expect("write");

Re-exports§

pub use builtin_subscriber::BuiltinSinks;
pub use builtin_subscriber::BuiltinSubscriber;
pub use builtin_subscriber::BuiltinTopic;
pub use builtin_subscriber::builtin_reader_qos;
pub use builtin_topics::ParticipantBuiltinTopicData as DcpsParticipantBuiltinTopicData;
pub use builtin_topics::PublicationBuiltinTopicData as DcpsPublicationBuiltinTopicData;
pub use builtin_topics::SubscriptionBuiltinTopicData as DcpsSubscriptionBuiltinTopicData;
pub use builtin_topics::TOPIC_NAME_DCPS_PARTICIPANT;
pub use builtin_topics::TOPIC_NAME_DCPS_PUBLICATION;
pub use builtin_topics::TOPIC_NAME_DCPS_SUBSCRIPTION;
pub use builtin_topics::TOPIC_NAME_DCPS_TOPIC;
pub use builtin_topics::TopicBuiltinTopicData as DcpsTopicBuiltinTopicData;
pub use dds_type::DdsType;
pub use dds_type::DdsTypeRow;
pub use dds_type::DecodeError;
pub use dds_type::EncodeError;
pub use dds_type::Extensibility;
pub use dds_type::ExtensibilityKind;
pub use dds_type::RawBytes;
pub use entity::Entity;
pub use entity::EntityState;
pub use entity::StatusCondition;
pub use entity::StatusMask;
pub use entity::immutable_if_enabled;
pub use coherent_set::CoherentScope;
pub use coherent_set::CoherentSetMarker;
pub use coherent_set::GroupAccessScope;
pub use condition::Condition;
pub use condition::GuardCondition;
pub use condition::QueryCondition;
pub use condition::ReadCondition;
pub use condition::WaitSet;
pub use error::DdsError;
pub use error::Result;
pub use factory::DomainParticipantFactory;
pub use instance_handle::HANDLE_NIL;
pub use instance_handle::InstanceHandle;
pub use instance_handle::InstanceHandleAllocator;
pub use instance_tracker::InstanceState;
pub use instance_tracker::InstanceTracker;
pub use instance_tracker::KeyHash;
pub use participant::IgnoreFilter;
pub use participant::DomainId;
pub use participant::DomainParticipant;
pub use publisher::DataWriter;
pub use publisher::Publisher;
pub use qos::DataReaderQos;
pub use qos::DataWriterQos;
pub use qos::DomainParticipantQos;
pub use qos::PublisherQos;
pub use qos::SubscriberQos;
pub use qos::TopicQos;
pub use sample::Sample;
pub use sample_info::InstanceStateKind;
pub use sample_info::SampleInfo;
pub use sample_info::SampleStateKind;
pub use sample_info::ViewStateKind;
pub use sample_info::instance_state_mask;
pub use sample_info::sample_state_mask;
pub use sample_info::view_state_mask;
pub use subscriber::DataReader;
pub use subscriber::Subscriber;
pub use time::Duration;
pub use time::Time;
pub use time::get_current_time;
pub use topic::hash_join_two;
pub use topic::ContentFilteredTopic;
pub use topic::JoinedRow;
pub use topic::MultiTopic;
pub use topic::Topic;
pub use topic::TopicDescription;
pub use topic::TopicDescriptionHandle;

Modules§

builtin_subscriber
Builtin-Subscriber — vorinstallierter Subscriber mit den 4 Builtin-Topic-Readern (DDS 1.4 §2.2.2.2.1.7 get_builtin_subscriber).
builtin_topics
Builtin-Topic-Datentypen — DCPS-API-Sicht (DDS 1.4 §2.2.5).
coherent_set
Coherent-Sets + Group-Access (DDS DCPS 1.4 §2.2.2.4.1.8-11, §2.2.2.5.2.8-11, §2.2.2.5.3.32; DDSI-RTPS 2.5 §9.6.4.2/3/4).
condition
Condition-Hierarchie + WaitSet (DDS DCPS 1.4 §2.2.2.1.6).
dds_type
DdsType — der Trait, den User-Typen erfuellen muessen, um ueber DDS verschickt zu werden.
durability_service
Durability-Service Storage-Backend (Spec §2.2.3.5 + §2.2.3.4 TRANSIENT/PERSISTENT-Pfad).
entity
Entity-Lifecycle (DDS DCPS 1.4 §2.2.2.1) — gemeinsame Basis fuer DomainParticipant, Publisher, Subscriber, Topic, DataWriter, DataReader.
error
DCPS-Fehlertypen. An OMG DDS 1.4 §2.2.2.1 ReturnCode_t angelehnt, aber als Rust-Result<T, DdsError> — deutlich angenehmer als sprayed-error-codes.
factory
DomainParticipantFactory — Singleton fuer das Anlegen von Participants (Spec OMG DDS 1.4 §2.2.2.2.1).
instance_handle
InstanceHandle — opaker, lokaler Identifier fuer Entities und Sample-Instanzen (DDS DCPS 1.4 §2.3.3 IDL-PSM, §2.2.2.5.1 SampleInfo.instance_handle).
instance_tracker
InstanceTracker — die zentrale Buchhaltung fuer keyed Topic- Instanzen, sowohl auf der Writer- als auch auf der Reader-Seite.
interop
Interop-Test-Typen fuer Cross-Vendor-Nachweis.
listener
Listener-Hierarchie (DDS DCPS 1.4 §2.2.4.2 + §2.2.2.*.3 set_listener).
listener_dispatch
Bubble-Up-Dispatcher fuer DCPS-Listener (Spec §2.2.4.2.3).
metrics
Hot-Path-Hook-Points fuer zerodds-monitor (zerodds-monitor-1.0 §2.3).
participant
DomainParticipant — die “Wurzel”-Entity eines DDS-Programms.
psm_constants
IDL-PSM-Konstanten aus DDS-DCPS 1.4 §2.3.3 (Spec).
publisher
Publisher + DataWriter — das Sende-Ende der DCPS-API.
qos
DCPS-QoS — komplette 22-Policy-Sets fuer DataWriter/DataReader/Topic/ Publisher/Subscriber/DomainParticipant gemaess DDS 1.4 §2.2.3.
runtime
DcpsRuntime — Event-Loop + UDP-Sockets pro DomainParticipant.
sample
Sample<T> — Daten + SampleInfo zusammen.
sample_info
SampleInfo — Metadaten pro Sample, die DataReader::read/take mit jedem Sample mitliefern.
status
Communication-Status-Strukturen (DDS DCPS 1.4 §2.2.4.1, Tab. 2.10).
subscriber
Subscriber + DataReader — das Empfangs-Ende der DCPS-API.
time
Time_t und Duration_t (DDS-DCPS 1.4 §2.3.3 IDL-PSM).
topic
Topic — der typed rendezvous-point zwischen DataWriter und DataReader.
wlp
Writer-Liveliness-Protocol (WLP) — DCPS-Runtime-Wiring.