Expand description
HDF5 Shared Object Header Message resolution.
When a header message has its “shared” flag (bit 1 of msg_flags) set, the message data is not the actual message content but a reference to a shared copy stored elsewhere.
Shared message reference types:
- Type 0: shared in the same object header (not typically used)
- Type 1: shared in another object header (version 1-2)
- Type 2: shared in the SOHM table (via fractal heap, version 3)
- Type 3: shared in another object header (version 3)
SOHM table structures:
- SharedMessageTable message (0x000F) in superblock extension: version + table_addr + nindexes
- SMTB structure at table_addr: per-index metadata (type flags, addresses, etc.)
- SMLI list structure: simple list of shared message entries
- B-tree v2 type 7: indexed shared message entries
Structs§
- Shared
Message Ref - A resolved shared message reference.
- Sohm
Entry - A single entry in a SOHM list or B-tree.
- Sohm
Index - A single SOHM index entry from the SMTB table.
- Sohm
Table - Parsed SOHM table (SMTB structure).
- Sohm
Table Message - Parsed Shared Message Table message (type 0x000F from superblock extension).
Functions§
- is_
shared - Check whether a header message has its shared flag set.
- parse_
shared_ ref - Parse a shared message reference from the message data.
- parse_
sohm_ btree_ entries - Parse SOHM entries from a B-tree v2 type 7 index.
- parse_
sohm_ list - Parse a SOHM list (signature “SMLI”) and return all entries.
- parse_
sohm_ table - Parse the SOHM table structure (signature “SMTB”) from the file.
- parse_
sohm_ table_ message - Parse a Shared Message Table message (type 0x000F) from the superblock extension.
- resolve_
shared_ message - Resolve a shared message to its actual message data.
- resolve_
shared_ message_ with_ sohm - Resolve a shared message, optionally using a SOHM table for type 2 refs.
- resolve_
sohm_ message - Resolve a type 2 (SOHM) shared message reference.