PerComponentFileFormat

bocca approach
The componentness (that information not redundant with sidl interface descriptions) can now be described (or should be describable, were bocca complete) with the bocca command line:

bocca create component -l LANGUAGE COMPONENTNAME
bocca change COMPONENTNAME --provides=PORTTYPE:PORTNAME
bocca change COMPONENTNAME --uses=PORTTYPE:PORTNAME

The only open issue in the above (bocca) is handling delegated ports and port-properties/component-properties.

small language approach
The component description files may have multiple sections and each section might have its own format.
E.g.

Package ptest {
Component Foo in C++ {
Provides hello.StringConsumerPort output1;
Uses hello.TimePort t1;
}
Component Bar in C {
Provides hello.TimeService clock%N dynamic=true; // %N indicates a number will be part of the runtime-generated port instance name.
Provides hello.SyncService mysync dynamic=true delegated=true; // dynamic means 'not provided in setServices', delegated means not done by Class Bar inheriting interface SyncService and further that there will be a private data member mysync in the component that is the delegate provider.
}


Or in INI fashion, but I'm sure i must be breaking the INI conventions here; with minor extensions this is the language the Ccaffeine framework speaks to the gui to tell it what to draw.
{Component.Foo}
ImplementationLanguage=c++
{Provides.output1}
type=hello.StringConsumerPort
depends=sidl.string
{Uses.t1}
type=hello.TimePort
{Component.Bar}
ImplementationLanguage=c
etc

Created by: baallan last modification: Wednesday 03 of October, 2007 [16:50:31 UTC] by baallan

The original document is available at http://www.cca-forum.org/wiki/tiki-index.php?page=PerComponentFileFormat