Skip to main content

Module entity

Module entity 

Source
Expand description

Entity-Lifecycle (DDS DCPS 1.4 §2.2.2.1) — gemeinsame Basis fuer DomainParticipant, Publisher, Subscriber, Topic, DataWriter, DataReader.

Spec-Verhalten (§2.2.2.1.1 Entity-Base):

  1. Lifecycle: create_*enable() → operational → delete_*. Pre-enable() ist die Entity inert (kein Discovery, keine Wire- Aktivitaet); set_qos auf alle Felder erlaubt.
  2. set_qos post-enable(): nur Felder mit “Changeable=YES” duerfen geaendert werden — sonst DdsError::ImmutablePolicy (§2.2.3 Tab. 2.13 Spalte “Changeable”).
  3. enable() ist idempotent. Wenn das Parent-Entity (Participant) entity_factory.autoenable_created_entities=TRUE hat, werden Children bei Erzeugung automatisch enabled.
  4. StatusCondition ist der Hook fuer den WaitSettrigger_value() liefert true, wenn ein Status mit Bit in der enabled_statuses-Mask aktiv ist.
  5. InstanceHandle ist eindeutig pro Entity (lokaler 64-Bit-Counter, nicht auf der Wire — siehe crate::instance_handle).

.1 liefert die low-level Entity-Trait + EntityState als Building-Block. Die Implementierungen (Publisher, DataWriter, …) halten ein Arc<EntityState> und delegieren die Trait-Methoden.

Structs§

EntityState
Atomic-Container fuer den Entity-Lifecycle.
StatusCondition
StatusCondition — Spec §2.2.2.1.6, der primaere WaitSet-Hook.

Traits§

Entity
Entity-Trait — gemeinsame Lifecycle-API der 6 Entity-Typen (DCPS §2.2.2.1).

Functions§

immutable_if_enabled
Hilfsfunktion: validiert dass ein QoS-Feld policy_name post-enable nicht geaendert wurde. Verwendung in set_qos-Impls:

Type Aliases§

StatusMask
StatusMask — 32-bit Bitmask der Status-Kinds (DCPS §2.2.4.1). Werte aus crate::psm_constants::status.