Expand description
CORBA TypeCode + its CDR wire form (§15.3.5) — the self-describing part
of an any. A TypeCode is a TCKind (unsigned long) plus parameters:
- Empty-param kinds (null/void/short/long/…/boolean/char/octet/wchar/ any/TypeCode/longlong/…): just the TCKind.
- Simple-param (
tk_string/tk_wstring): TCKind +bound(ulong), inline (NOT encapsulated). - Complex-param (
tk_objref/tk_struct/tk_enum/tk_sequence/tk_array/tk_alias/tk_except/tk_union): TCKind + a CDR encapsulation (sequence<octet>= length + byte-order octet + parameters, alignment relative to the byte-order octet).
Indirection (TCKind 0xffffffff + negative offset, §15.3.5.1) is
resolved during decoding: a position cache (stream offset → TypeCode)
makes it possible to clone repeated TypeCodes and to represent
recursive ones (e.g. struct Node { sequence<Node> kids; }) as a
TypeCode::Recursive marker. Encode-side indirection (offset
backpatching) is a separate feature; for cross-ORB interop, decode
acceptance is sufficient.
Modules§
- tckind
TCKinddiscriminators (§15.3.5.1, OMG wire values). The constant names map 1:1 to the OMGtk_*identifiers.
Enums§
- Type
Code - CORBA
TypeCode(subset: all scalar kinds + string/wstring + sequence + struct + enum + alias + objref — the common structuredanycontents).