GenoM IDL mappings

## Contents

- Your rights

- Introduction

- Component model

- Component description file

- GenoM IDL mappings

  - `C` mappings

    - Scoped name

    - Constant

    - Basic type

    - Enumerated type

    - String

    - Array

    - Struct

    - Union

    - Sequence

    - Optional

    - Port

    - Remote

    - Native

    - Exception

  - `C++` mappings

    - Scoped name

    - Constant

    - Basic type

    - Enumerated type

    - String

    - Array

    - Struct

    - Union

    - Sequence

    - Optional

    - Port

    - Remote

    - Native

    - Exception

- Running GenoM

- Tutorials

- Templates

## GenoM IDL mappings

`genom3` IDL is independent of the programming language used to implement the services and internals of a component. In order to use the `genom3` generated source code, it is necessary for programmers to know how to access the service parameters and ports from their programming languages. This chapter defines the mapping of `genom3` IDL constructs to the supported programming languages.

The mapping between `genom3` IDL and a programming language diverges from the OMG CORBA standard. This is unfortunate, because this might lead to some confusion for the developers used to OMG CORBA, but it was necessary to define mappings well targetting real-time platforms. The design strategy that guided the definition of those mappings was to try to have contiguous memory segments, that do not require memory management primitives, for most of the data types. Only unbounded string and sequences do not follow this scheme.

`genom3` currently implements mappings for the `C` and `C++` languages.

### `C` mappings: From IDL types to `C` types

- Scoped name

- Constant

- Basic type

- Enumerated type

- String

- Array

- Struct

- Union

- Sequence

- Optional

- Port

- Remote

- Native

- Exception

### `C++` mappings: From IDL types to `C++` types

- Scoped name

- Constant

- Basic type

- Enumerated type

- String

- Array

- Struct

- Union

- Sequence

- Optional

- Port

- Remote

- Native

- Exception