Expand description
XTypes 1.3 TypeIdentifier (Spec §7.3.4.2).
TypeIdentifier ist eine CDR-Union mit octet-Discriminator. Er
identifiziert einen Typ entweder direkt (Primitives, plain
Collections) oder indirekt ueber einen 14-byte SHA-256-Hash auf
das serialisierte TypeObject (EK_MINIMAL / EK_COMPLETE).
§Wire-Encoding (XCDR2 LE)
TypeIdentifier {
octet _d; // 1 byte discriminator
// body abhaengig von _d:
// TK_NONE..TK_CHAR16: no body
// TI_STRING8_SMALL/LE_SMALL: { octet bound; }
// TI_STRING8_LARGE/LE_LARGE: { uint32 bound; } // 4-byte aligned
// TI_PLAIN_SEQUENCE_SMALL: { PlainCollectionHeader; octet bound; @external TypeIdentifier elem; }
// TI_PLAIN_SEQUENCE_LARGE: { PlainCollectionHeader; uint32 bound; @external TypeIdentifier elem; }
// TI_PLAIN_ARRAY_SMALL: { PlainCollectionHeader; seq<octet,5> dims; @external TypeIdentifier elem; }
// TI_PLAIN_ARRAY_LARGE: { PlainCollectionHeader; seq<uint32,5> dims; @external TypeIdentifier elem; }
// TI_PLAIN_MAP_SMALL: { PlainCollectionHeader; octet bound;
// @external TypeIdentifier elem;
// CollectionElementFlag key_flags;
// @external TypeIdentifier key; }
// TI_PLAIN_MAP_LARGE: { ... uint32 bound ... }
// TI_STRONGLY_CONNECTED_COMPONENT: { SCC_ID scc_id; }
// EK_MINIMAL / EK_COMPLETE: { octet hash[14]; }
}Modules§
- kinds
- XTypes 1.3 TypeIdentifier-Discriminator-Konstanten.
Structs§
- Collection
Element Flag - Collection-Element-Flags (§7.3.4.7.1). 16-bit Bitmaske mit nur einem relevanten Bit (TRY_CONSTRUCT) fuer TypeIdentifier.
- Equivalence
Hash - 14-byte SHA256-Hash ueber ein serialisiertes TypeObject.
- Plain
Collection Header - Header fuer plain collections (§7.3.4.7.1).
- Strongly
Connected Component Id - Identifiziert eine starkconnected-Component-ID fuer rekursive Typen.
Enums§
- Equivalence
Kind - Equivalence-Kind des Elements einer PlainCollection (§7.3.4.7.1).
- Primitive
Kind - Primitive Kind (kein Body im TypeIdentifier, nur der Discriminator).
- Type
Identifier - TypeIdentifier — XTypes §7.3.4.2.