10.23.2 Category record format

When OEConfigure encounters a category record, it creates add a child OEInterface object to the current OEInterface. A category record takes the following form.

!CATEGORY <name> [order priority]
  !DETAIL
    <detailed description line 1>
    <detailed description line 2>
    <detailed description line 3>
    .
    .
    .
  !BRIEF <brief description>
  [Parameter Record]
  [Category Record]
!END

The order individual fields appear within the category record is unimportant. All fields within the category record are optional. So the minimal category record is as follows.

!CATEGORY <name> [order priority]
!END

Which, when parsed by OEConfigure is equivilant to

OEInterface* child_itf = itf.AddInterface();
child_itf->SetName(<name>);
child_itf->SetOrderPriority([order priority]);

If [order priority] is not specified 0 is assumed.

Fields within the category record have the following meaning.

!DETAIL

All lines following the !DETAIL keyword up until this next line begining with another category record keyword are added to the child OEInterface via

child_itf->AddDetail(<detail line>);

This field can appear once in a parameter record.

!BRIEF <brief description>

param->SetBrief(<brief description>);

This field can only appear once.

parmameter record
Parameter records can appear inside category records. There format is the same as those outside the category record, however the parameter will be added to the child interface. A category record can hold any number of parameter records.

category record
Category records can be nested within category records, thus creating a child OEInterface of a child OEInterface. There is no limit to the depth of nesting, and any number of nested category records can appear within a category record.