Skip to main content

Module topic

Module topic 

Source
Expand description

Topic — der typed rendezvous-point zwischen DataWriter und DataReader.

Spec-Referenz:

  • OMG DDS 1.4 §2.2.2.3.1 TopicDescription (Base-Klasse fuer Topic, ContentFilteredTopic, MultiTopic),
  • §2.2.2.3.2 Topic (concrete TopicDescription mit Type + Topic-QoS),
  • §2.2.2.2.1.12 lookup_topicdescription (untypisiertes Lookup),
  • §2.2.2.2.1.13 create_contentfilteredtopic.

In v1.2 sind wir schlicht: der Topic<T> ist ein Handle, das name + type_name traegt und einen generischen PhantomData<T> fuer statische Typ-Sicherheit. Der Topic referenziert seinen DomainParticipant, damit TopicDescription::get_participant Spec-treu funktioniert. Der Cycle-Bruch sitzt in der Topic-Registry: die haelt nur Arc<TopicInner>, nicht den geklonten DomainParticipant-Handle.

Structs§

ContentFilteredTopic
ContentFilteredTopic<T> — Sub-Topic eines Topic<T> mit Filter-Expression. Spec-Referenz: OMG DDS 1.4 §2.2.2.3.3.
JoinedRow
JoinedRowRowAccess-Adapter ueber mehrere benannte Topic-Quellen. Dotted-Pfade topic.field.sub werden am ersten . geteilt: der Praefix matcht den Topic-Namen, der Rest wird an dessen RowAccess::get weitergereicht.
MultiTopic
MultiTopic<T> — Spec §2.2.2.3.4 (DDS 1.4 optionales Feature).
Topic
Typed Topic-Handle.
TopicDescriptionHandle
Untypisiertes TopicDescription-Handle, das aus DomainParticipant::lookup_topicdescription / DomainParticipant::find_topic zurueckgegeben wird.

Traits§

TopicDescription
TopicDescription-Trait — Base-Interface fuer alles, woraus ein DataReader (typed via T) Samples beziehen kann.

Functions§

hash_join_two
Hash-Join-Helper fuer zwei typed Streams. Iteriert die linke Liste, baut eine HashMap key -> [&L] (Build-Phase), iteriert dann die rechte Liste (Probe-Phase) und erzeugt fuer jedes matchende (L, R)-Paar via combine ein Resultat. Optional wird ein zusaetzliches Predicate via predicate (z.B. MultiTopic::evaluate_joined) auf jedem Paar geprueft.