IDL Base types

## Contents

- Your rights

- Introduction

- Component model

- Component description file

  - Preprocessing

  - Elements of a description file

  - Data type and constant definitions

  - Module declaration

  - Component declaration

  - Interface declaration

  - IDS declaration

  - Port declaration

  - Task declaration

  - Service declaration

  - Codel declaration

  - Identifiers and reserved keywords

  - Pragmas

  - Grammar reference

- GenoM IDL mappings

- Running GenoM

- Tutorials

- Templates

## IDL Base types

The base types of IDL are boolean values, binary values, signed or unsigned integers, floating point and characters. The chapter on GenoM IDL mappings explains how they map to the actual programming language.

(71) `base-type-spec ::=` | `boolean-type` `|` `integer-type` `|` `floating-pt-type` `|` `char-type` `|` `octet-type` `|` `any-type`

### Integer types

They represent integer values in the range indicated below.

(72) `integer-type ::=` | `signed-int` `|` `unsigned-int`
(73) `signed-int ::=` | `signed-longlong-int` `|` `signed-long-int` `|` `signed-short-int`
(74) `unsigned-int ::=` | `unsigned-longlong-int` `|` `unsigned-long-int` `|` `unsigned-short-int`
(80) `signed-longlong-int ::=` | `"long"` `"long"`
(79) `signed-long-int ::=` | `"long"`
(78) `signed-short-int ::=` | `"short"`
(77) `unsigned-longlong-int ::=` | `"unsigned"` `"long"` `"long"`
(76) `unsigned-long-int ::=` | `"unsigned"` `"long"`
(75) `unsigned-short-int ::=` | `"unsigned"` `"short"`

Table 1. Range of integer types
short | -215 .. 215-1
long | -231 .. 231-1
long long | -263 .. 263-1
unsigned short | 0 .. 216-1
unsigned long | 0 .. 232-1
unsigned long long | 0 .. 264-1

### Floating point types

They represent floating point values. The `float` type represents IEEE single-precision floating point numbers; the `double` type represents IEEE double-precision floating point numbers.

(81) `floating-pt-type ::=` | `float-type` `|` `double-type`
(82) `float-type ::=` | `"float"`
(83) `double-type ::=` | `"double"`

### Char types

A char data type that is an 8-bit quantity that encodes a single-byte character.

(84) `char-type ::=` | `"char"`

### Boolean Types

The boolean data type is used to denote a data item that can only take one of the values TRUE and FALSE.

(85) `boolean-type ::=` | `"boolean"`

### Octet Types

The octet type represents an 8 bit quantity.

(86) `octet-type ::=` | `"octet"`

### Any Types

Caution | The `any` type is a generic type that can contain any other type. This is not yet implemented in genom, so you must not use it.

(87) `any-type ::=` | `"any"`