Interface declaration

## 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

## Interface declaration

An interface declaration is basically the same as a component declaration but is meant to be shared between several components. Although any object can be defined in an interface, it will typically only declare service prototypes and ports that are to be `provided` or `used` by components.

(14) `interface ::=` | `"interface"` `interface-scope` `component-body` `";"`
(15) `interface-scope ::=` | `identifier`
(17) `interface-property ::=` | `"extends"` `interface-list` `";"`

In addition to regular component properties, an interface can also define the following properties:

extends

  A list of interfaces that are imported as-is into the current one. All objects from the extended interfaces appear as if they had been defined in the extending interface.