Skip to main content

The implements definition

note

Work in progress.

Purpose

Notify the framework that one or more general interfaces are implemented.

Syntax

{
"cdlOptions": {
"<name>": {
...
"implements": [ "<path>",... ],
...
}
}
}

The value of the implements property is an array of strings containing xCDL paths of interface objects that this object implements.

Default value

If missing it is assumed that the current object does not implement any interface.

Description

The xCDL interface concept provides an abstraction mechanism that can be useful in many different circumstances. Essentially, an interface is a computed option whose value is the number of active and enabled objects that implement that interface. For example, the interface kernel/scheduler has a value corresponding to the number of schedulers in the system, typically just one.

The implements property defines an array of xCDL paths of the implemented interfaces (an object may implement multiple interfaces). These interfaces may be defined in the same package as the implementor or in another package. In the latter case, it may sometimes be appropriate for the implementor or the implementor's package to have a requires property for the package containing the interface.

It is possible for an object to implement a given interface multiple times, but only distinct implementors are counted.

Example

{
"cdlOptions": {
"mlqueue": {
"display": "Multi-level queue scheduler",
"parent": "kernel",
"generatedDefinition": "OS_PACKEGE_KERNEL_SCHED_MLQUEUE",
"defaultEnable": true,
"implements": [ "kernel/scheduler" ]
}
}
}

See also

eCos reference