Skip to main content

Module hash

Module hash 

Source
Expand description

TypeIdentifier-Hash-Computation (XTypes 1.3 §7.3.1.2).

Der EquivalenceHash (14 byte) wird aus den ersten 14 Bytes des MD5-Digests ueber die XCDR2-serialisierte TypeObject-Darstellung gebildet (XTypes 1.3 §7.3.1.2.1):

EquivalenceHash(T) := MD5(xcdr2_le_bytes(T))[0..14]

Cyclone DDS und Fast-DDS verwenden MD5 — daher pflicht fuer Live-Interop.

  • Fuer MinimalTypeObject T: EK_MINIMAL-Hash
  • Fuer CompleteTypeObject T: EK_COMPLETE-Hash

Aus dem Hash wird ein TypeIdentifier der Kind EK_MINIMAL bzw. EK_COMPLETE gebaut — dieser ist die “strongly-hashed” Form des TypeObjects, wie sie ueber SEDP (PID_TYPE_INFORMATION) und TypeLookup-Service zwischen Peers ausgetauscht wird.

Functions§

compute_complete_hash
Wie compute_minimal_hash, nur fuer CompleteTypeObject.
compute_hash
Berechnet den 14-byte-EquivalenceHash eines TypeObjects.
compute_minimal_hash
Wie compute_hash, aber direkt ueber MinimalTypeObject (ohne EquivalenceKind-Discriminator-Wrapper-Clone). Schreibt selbst den EK_MINIMAL-Discriminator vor den Body.
hash_bytes
Rohe Hash-Funktion: MD5 + Truncate auf 14 byte.
to_hashed_type_identifier
Shortcut: baut einen strongly-hashed TypeIdentifier aus einem TypeObject. Wraps compute_hash in den passenden EquivalenceHash*- TypeIdentifier-Variant abhaengig von Minimal/Complete.