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. Carries a section (fragments) of a sample
whose total size is in sample_size.
Flags (Q/H/K/N) are mirrored from the submessage header. The encoder does not currently set these flags; the decoder accepts them on read.
Fields§
§extra_flags: u16octetsToInlineQos analogue to DATA (§8.3.7.2 speaks of extraFlags+ octetsToInlineQos; this variant carries 0).
reader_id: EntityIdReader EntityId (target).
writer_id: EntityIdWriter EntityId (source).
writer_sn: SequenceNumberSequence number of the sample whose fragments this carries.
fragment_starting_num: FragmentNumberFirst fragment in this submessage (1-based).
fragments_in_submessage: u16Number of fragments in this submessage. Writer: always 1.
fragment_size: u16Size of a single fragment (the last may be shorter).
sample_size: u32Total size of the sample in bytes.
serialized_payload: Arc<[u8]>Fragmented payload section. Arc-shared: writer re-sends are just refcount bumps, no copy.
inline_qos_flag: boolQ-flag from the submessage header (inline_qos present).
hash_key_flag: boolH-flag from the submessage header (hash_key).
key_flag: boolK-flag from the submessage header (serialized_payload = key).
non_standard_flag: boolN-flag from the 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 without 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 from the end of this field to the start of inlineQos or serializedPayload. Variant with 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 more