Skip to main content

Module message_builder

Module message_builder 

Source
Expand description

MessageBuilder — Submessage-Aggregation in ein UDP-Datagramm.

Analog zu Fast-DDS RTPSMessageGroup (Recherche WP 1.4). Der Writer oeffnet einen Builder pro Ziel-Locator-Set, haengt mehrere Submessages an, und finalisiert zu einem OutboundDatagram. Aggregation spart RTPS-Header + UDP-Overhead bei SEDP-Announce-all-Runden und kleinen Samples.

§Flush-Regeln

  1. Size-Trigger: try_add_submessage lehnt ab, wenn der Body nicht mehr ins MTU passt. Caller muss finish() + neuen Builder.
  2. DATA_FRAG geht alleine: Aufrufer soll DATA_FRAG-Submessages nicht mit anderen bundlen (Fragment ist typisch MTU-nah).
  3. Piggyback-HEARTBEAT am Ende: Aufrufer haengt HB nach allen DATAs an, vor finish().
  4. Kein INFO_DST: Phase 1 baut ein Datagramm pro Proxy — GuidPrefix ist statisch. INFO_DST wird fuer Multicast-Fan-out mit gemischten Zielen in Phase 2 ergaenzt.
  5. Kein INFO_TS: Writer hat heute keine Source-Timestamps.

§Ziel-Locators

Ein Datagramm geht an alle targets. Typisch: die Unicast-Locators des Remote-Readers, oder ein Multicast-Locator. Transport-Layer kippt es einmal pro Locator auf die Leitung.

Structs§

MessageBuilder
Submessage-Aggregator.
OutboundDatagram
Ein fertig aggregiertes Datagramm mit Zielen.

Enums§

AddError
Grund, warum MessageBuilder::try_add_submessage ablehnt.

Constants§

DEFAULT_MTU
Default-MTU fuer Aggregation (Ethernet 1500 − 20 IP − 8 UDP).