adr_type_t Type

Each data type is represented by an adr_type_t type, whether it is just a base type or a complex type of nested structures and arrays. The adr_type_t contains all the information necessary to understand the structure of the type. libadr provides statically-allocated singletons of adr_type_t type for the base types. These singleton types are more than a convenience. They must be used when referencing the base types.

The base types and their corresponding array types are listed in the following table.

Table 3-1 ADR Base and Array Types

ADR type C adr_type_t C array adr_type_t

string

adr_t_string

adr_t_array_string

integer

adr_t_integer

adr_t_array_integer

uinteger

adr_t_uinteger

adr_t_array_uinteger

long

adr_t_long

adr_t_array_long

ulong

adr_t_ulong

adr_t_array_ulong

time

adr_t_time

adr_t_array_time

name

adr_t_name

adr_t_array_name

boolean

adr_t_boolean

adr_t_array_boolean

opaque

adr_t_opaque

adr_t_array_opaque

secret

adr_t_secret

adr_t_array_secret

float

adr_t_float

adr_t_array_float

double

adr_t_double

adr_t_array_double

reference

adr_t_reference

adr_t_array_reference

The adr_type_t for a derived type should also be unique, but obviously they cannot be defined by libadr. Although technically adr_type_t could be dynamically allocated, at the moment, the only supported way of defining an adr_type_t is to generate a definition using the ADR IDL and radadrgen.