Skip to main content

Module type_code

Module type_code 

Source
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
TCKind discriminators (§15.3.5.1, OMG wire values). The constant names map 1:1 to the OMG tk_* identifiers.

Enums§

TypeCode
CORBA TypeCode (subset: all scalar kinds + string/wstring + sequence + struct + enum + alias + objref — the common structured any contents).