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).

§Layer position

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

§Public API (as of 1.0.0-rc.1)

§Example

use zerodds_dcps::*;
let factory = DomainParticipantFactory::instance();
// Offline mode for the doctest (no UDP multicast needed).
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
Built-in subscriber — preinstalled subscriber with the 4 built-in-topic readers (DDS 1.4 §2.2.2.2.1.7 get_builtin_subscriber).
builtin_topics
Built-in-topic data types — DCPS API view (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 hierarchy + WaitSet (DDS DCPS 1.4 §2.2.2.1.6).
dds_type
DdsType — the trait that user types must implement to be sent over DDS.
durability_service
Durability-service storage backend (Spec §2.2.3.5 + §2.2.3.4 TRANSIENT/PERSISTENT path).
entity
Entity lifecycle (DDS DCPS 1.4 §2.2.2.1) — common base for DomainParticipant, Publisher, Subscriber, Topic, DataWriter, DataReader.
error
DCPS error types. Modeled on OMG DDS 1.4 §2.2.2.1 ReturnCode_t, but as a Rust Result<T, DdsError> — considerably nicer than sprayed error codes.
factory
DomainParticipantFactory — singleton for creating participants (Spec OMG DDS 1.4 §2.2.2.2.1).
instance_handle
InstanceHandle — opaque, local identifier for entities and sample instances (DDS DCPS 1.4 §2.3.3 IDL-PSM, §2.2.2.5.1 SampleInfo.instance_handle).
instance_tracker
InstanceTracker — the central bookkeeping for keyed topic instances, on both the writer and the reader side.
interop
Interop test types for cross-vendor verification.
layered_transport
Preference-ordered multi-transport for user traffic (SHM + UDP fallback). LayeredUserTransport — a preference-ordered multi-transport for user traffic.
listener
Listener hierarchy (DDS DCPS 1.4 §2.2.4.2 + §2.2.2.*.3 set_listener).
listener_dispatch
Bubble-up dispatcher for DCPS listeners (Spec §2.2.4.2.3).
metrics
Hot-path hook points for zerodds-monitor (zerodds-monitor-1.1 §2.3).
participant
DomainParticipant — the “root” entity of a DDS program.
psm_constants
IDL-PSM constants from DDS-DCPS 1.4 §2.3.3 (Spec).
publisher
Publisher + DataWriter — the send end of the DCPS API.
qos
DCPS QoS — complete 22-policy sets for DataWriter/DataReader/Topic/ Publisher/Subscriber/DomainParticipant per DDS 1.4 §2.2.3.
runtime
DcpsRuntime — event loop + UDP sockets per DomainParticipant.
same_host
Same-host tracker for Wave 4 of the zero-copy roadmap (Spec docs/specs/zerodds-zero-copy-1.0.md §6 Wave 3).
sample
Sample<T> — data + SampleInfo together.
sample_bytes
SampleBytes — zero-copy byte container for reader-path samples.
sample_info
SampleInfo — per-sample metadata that DataReader::read/take deliver alongside each sample.
scheduler
D.5e Phase 3 — deadline-heap scheduler (event-driven replacement for the fixed-period tick poll). Std-only (mpsc channel + Instant park). D.5e Phase 3 — deadline-heap scheduler.
status
Communication status structures (DDS DCPS 1.4 §2.2.4.1, Table 2.10).
subscriber
Subscriber + DataReader — the receive end of the DCPS API.
time
Time_t and Duration_t (DDS-DCPS 1.4 §2.3.3 IDL PSM).
topic
Topic — the typed rendezvous point between DataWriter and DataReader.
wlp
Writer Liveliness Protocol (WLP) — DCPS runtime wiring.