pub struct DataFragSubmessage {Show 13 fields
pub extra_flags: u16,
pub reader_id: EntityId,
pub writer_id: EntityId,
pub writer_sn: SequenceNumber,
pub fragment_starting_num: FragmentNumber,
pub fragments_in_submessage: u16,
pub fragment_size: u16,
pub sample_size: u32,
pub serialized_payload: Arc<[u8]>,
pub inline_qos_flag: bool,
pub hash_key_flag: bool,
pub key_flag: bool,
pub non_standard_flag: bool,
}Expand description
DATA_FRAG-Submessage. Traegt einen Ausschnitt (Fragmente) eines
Samples, dessen Gesamtgroesse in sample_size steht.
Flags (Q/H/K/N) werden aus dem Submessage-Header gespiegelt. Encoder setzt diese Flags aktuell nicht; Decoder akzeptiert sie lesend.
Fields§
§extra_flags: u16octetsToInlineQos-Analog zu DATA (§8.3.7.2 spricht von extraFlags+ octetsToInlineQos; Variante traegt 0).
reader_id: EntityIdReader-EntityId (Ziel).
writer_id: EntityIdWriter-EntityId (Quelle).
writer_sn: SequenceNumberSequence-Number des Samples, dessen Fragmente dies traegt.
fragment_starting_num: FragmentNumberErstes Fragment in dieser Submessage (1-basiert).
fragments_in_submessage: u16Anzahl der Fragmente in dieser Submessage. Writer: immer 1.
fragment_size: u16Groesse eines einzelnen Fragments (das letzte darf kuerzer sein).
sample_size: u32Gesamtgroesse des Samples in Bytes.
serialized_payload: Arc<[u8]>Fragmentierter Payload-Ausschnitt. Arc-shared: Writer-Re-Sends bauen nur Refcount-Bumps, keine Kopie.
inline_qos_flag: boolQ-Flag aus dem Submessage-Header (inline_qos present).
hash_key_flag: boolH-Flag aus dem Submessage-Header (hash_key).
key_flag: boolK-Flag aus dem Submessage-Header (serialized_payload = Key).
non_standard_flag: boolN-Flag aus dem Submessage-Header (non-standard payload).
Implementations§
Source§impl DataFragSubmessage
impl DataFragSubmessage
Sourcepub const HEADER_WIRE_SIZE: usize = 32
pub const HEADER_WIRE_SIZE: usize = 32
Minimal-Body-Size ohne Payload: extraFlags(2) + octetsToInlineQos(2)
- readerId(4) + writerId(4) + writerSN(8) + fragmentStartingNum(4)
- fragmentsInSubmessage(2) + fragmentSize(2) + sampleSize(4) = 32.
Sourcepub const OCTETS_TO_INLINE_QOS: u16 = 28
pub const OCTETS_TO_INLINE_QOS: u16 = 28
octetsToInlineQos: Offset vom Ende dieses Felds bis zum Beginn von inlineQos bzw. serializedPayload. Variante mit Q=false: Offset = 28 (readerId..sampleSize).
Trait Implementations§
Source§impl Clone for DataFragSubmessage
impl Clone for DataFragSubmessage
Source§fn clone(&self) -> DataFragSubmessage
fn clone(&self) -> DataFragSubmessage
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for DataFragSubmessage
impl Debug for DataFragSubmessage
Source§impl PartialEq for DataFragSubmessage
impl PartialEq for DataFragSubmessage
Source§fn eq(&self, other: &DataFragSubmessage) -> bool
fn eq(&self, other: &DataFragSubmessage) -> bool
self and other values to be equal, and is used by ==.