Skip to main content

Entity

Trait Entity 

Source
pub trait Entity {
    type Qos: Clone;

    // Required methods
    fn get_qos(&self) -> Self::Qos;
    fn set_qos(&self, qos: Self::Qos) -> Result<()>;
    fn enable(&self) -> Result<()>;
    fn entity_state(&self) -> Arc<EntityState> ;

    // Provided methods
    fn is_enabled(&self) -> bool { ... }
    fn get_status_condition(&self) -> StatusCondition { ... }
    fn get_status_changes(&self) -> StatusMask { ... }
    fn get_instance_handle(&self) -> InstanceHandle { ... }
}
Expand description

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

Nicht-blocking, Send+Sync — alle Methoden delegieren auf Arc<EntityState>.

Required Associated Types§

Source

type Qos: Clone

QoS-Typ fuer diese Entity (z.B. DomainParticipantQos, DataWriterQos, …).

Required Methods§

Source

fn get_qos(&self) -> Self::Qos

Liefert die aktuelle QoS (clone). Spec §2.2.2.1.2 get_qos.

Source

fn set_qos(&self, qos: Self::Qos) -> Result<()>

Aendert QoS. Pre-enable: alles erlaubt. Post-enable: nur Felder mit “Changeable=YES” — sonst ImmutablePolicy-Error. Spec §2.2.2.1.2 set_qos.

§Errors
Source

fn enable(&self) -> Result<()>

Enabled die Entity (idempotent). Spec §2.2.2.1.4 enable.

§Errors

DdsError::PreconditionNotMet wenn das Parent-Entity nicht enabled ist (Spec: Children koennen nicht vor Parent enabled werden — ausser Factory selbst).

Source

fn entity_state(&self) -> Arc<EntityState>

Interner Accessor — jede Impl liefert ihren Arc<EntityState>.

Provided Methods§

Source

fn is_enabled(&self) -> bool

True wenn die Entity bereits enabled ist.

Source

fn get_status_condition(&self) -> StatusCondition

StatusCondition dieser Entity. Spec §2.2.2.1.6 get_status_condition.

Source

fn get_status_changes(&self) -> StatusMask

Bitmask der Status-Kinds, die seit letztem Read geaendert haben. Spec §2.2.2.1.5 get_status_changes.

Source

fn get_instance_handle(&self) -> InstanceHandle

Lokaler 64-Bit-Identifier. Spec §2.2.2.1.7 get_instance_handle.

Implementors§

Source§

impl Entity for DomainParticipant

Source§

impl Entity for Publisher

Available on crate feature std only.
Source§

impl Entity for Subscriber

Available on crate feature std only.
Source§

impl<T: DdsType> Entity for DataWriter<T>

Available on crate feature std only.
Source§

impl<T: DdsType> Entity for DataReader<T>

Available on crate feature std only.
Source§

impl<T: DdsType> Entity for Topic<T>

Available on crate feature std only.