pub struct SharedMessage {
pub msg_type: u8,
pub body: Vec<u8>,
pub nested: Vec<NestedShare>,
pub ref_count: u32,
pub ohdr_addr: Option<u64>,
}Expand description
One message body an index holds, and how many object header messages were replaced by a pointer to it.
Fields§
§msg_type: u8The message type the body belongs to; it seeds the record’s hash.
body: Vec<u8>The encoded message body, exactly as an unshared header would hold it,
except that any heap ID nested names is still zero.
nested: Vec<NestedShare>Where this body points at other shared messages; empty for every class but the attribute.
ref_count: u32References to this body (H5SM_sohm_t::ref_count).
ohdr_addr: Option<u64>Address of the object header that kept the first copy of this body
literal, for a class carrying H5O_SHARE_IN_OHDR; None when the
body went to the heap the first time it was offered.
It decides only what a single-reference record looks like: with one
reference the body has no heap object at all and the record names the
header (H5SM_IN_OH), and with more the body is in the heap and the
literal copy is one of the references the count covers
(H5SM.c:1298-1306).
Implementations§
Sourcepub fn kept_in_ohdr(&self) -> Option<u64>
pub fn kept_in_ohdr(&self) -> Option<u64>
The object header keeping this body literal, when that is where it stays: a share-in-object-header class with one reference has no heap object at all and its record names the header (H5SM.c:1400-1417). A second reference is what moves the body to the heap, so anything counted more than once is heaped however it started.