Skip to main content

Module topic

Module topic 

Source
Expand description

Topic — the typed rendezvous point between DataWriter and DataReader.

Spec reference:

  • OMG DDS 1.4 §2.2.2.3.1 TopicDescription (base class for Topic, ContentFilteredTopic, MultiTopic),
  • §2.2.2.3.2 Topic (concrete TopicDescription with type + Topic QoS),
  • §2.2.2.2.1.12 lookup_topicdescription (untyped lookup),
  • §2.2.2.2.1.13 create_contentfilteredtopic.

In v1.2 we stay simple: the Topic<T> is a handle that carries name + type_name and a generic PhantomData<T> for static type safety. The topic references its DomainParticipant so that TopicDescription::get_participant works faithfully to spec. The cycle is broken in the topic registry: it holds only Arc<TopicInner>, not the cloned DomainParticipant handle.

Structs§

ContentFilteredTopic
ContentFilteredTopic<T> — a sub-topic of a Topic<T> with a filter expression. Spec reference: OMG DDS 1.4 §2.2.2.3.3.
JoinedRow
JoinedRow — a RowAccess adapter over several named topic sources. Dotted paths topic.field.sub are split at the first .: the prefix matches the topic name, the rest is forwarded to its RowAccess::get.
MultiTopic
MultiTopic<T> — spec §2.2.2.3.4 (DDS 1.4 optional feature).
Topic
Typed topic handle.
TopicDescriptionHandle
Untyped TopicDescription handle returned from DomainParticipant::lookup_topicdescription / DomainParticipant::find_topic.

Traits§

TopicDescription
TopicDescription trait — base interface for anything a DataReader (typed via T) can obtain samples from.

Functions§

hash_join_two
Hash-join helper for two typed streams. Iterates the left list, builds a HashMap key -> [&L] (build phase), then iterates the right list (probe phase) and produces a result via combine for each matching (L, R) pair. Optionally, an additional predicate via predicate (e.g. MultiTopic::evaluate_joined) is checked on each pair.