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):
- Lifecycle:
create_*→enable()→ operational →delete_*. Pre-enable()ist die Entity inert (kein Discovery, keine Wire- Aktivitaet); set_qos auf alle Felder erlaubt. - set_qos post-
enable(): nur Felder mit “Changeable=YES” duerfen geaendert werden — sonstDdsError::ImmutablePolicy(§2.2.3 Tab. 2.13 Spalte “Changeable”). - enable() ist idempotent. Wenn das Parent-Entity (Participant)
entity_factory.autoenable_created_entities=TRUEhat, werden Children bei Erzeugung automatisch enabled. - StatusCondition ist der Hook fuer den
WaitSet—trigger_value()liefert true, wenn ein Status mit Bit in derenabled_statuses-Mask aktiv ist. - 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§
- Entity
State - Atomic-Container fuer den Entity-Lifecycle.
- Status
Condition 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_namepost-enable nicht geaendert wurde. Verwendung inset_qos-Impls:
Type Aliases§
- Status
Mask StatusMask— 32-bit Bitmask der Status-Kinds (DCPS §2.2.4.1). Werte auscrate::psm_constants::status.