idl4re

Getting Started Downloads Development Roadmap

The idl4re project is an attempt to support an interface description language for components operating in the L4 Runtime Environment, providing a tool - idl - that takes interface descriptions and generates code to be incorporated into components, permitting those components to interact with each other without being concerned with the communications mechanisms involved.

See Getting Started for instructions on building, deploying and running the software.

Interface Descriptions

For use with the idl tool, an interface description may resemble the following:

interface Calc
{
  void add(in int left, in int right, out int result);
  void subtract(in int left, in int right, out int result);
  void multiply(in int left, in int right, out int result);
  void divide(in int numerator, in int denominator, out int result);
};

An interface provides a particular way of interacting with a component, with operations being exposed to communicate with and to manipulate the component. In the above example, the Calc interface provides add, subtract, multiply and divide operations that accept input values, each producing an output value.

Code Generation

Generating client code permits a component to access a described interface using function invocations as if the operations supporting the interface were directly incorporated into the same program.

Generating server code permits a component to expose a described interface, having its own functions called as if the caller were another part of the same program.

The DICE tool was previously made available to support component interactions in L4Re. It seeks to provide a degree of compatibility with technologies such as CORBA and DCE, these being component architectures in their own right.