CDL descriptions are put into separate *.cdl
files, which contain the following data:
component <component name>
security <interface name>
endpoints {
<endpoint name : interface name>
...
}
Each endpoint is indicated in a separate line. The endpoint name must not contain any underscores _
. The list can contain multiple endpoints with the same interface. Each endpoint in the list has a unique name.
components {
<component instance name : component name>
...
}
Each component instance is indicated in a separate line. The component instance name must not contain any underscores _
. The list can contain multiple instances of one component. Each component instance in the list has a unique name.
The CDL language is case sensitive.
Single-line comments and multi-line comments can be used in a CDL description.
At least one optional declaration is used in a CDL description. If a CDL description does not use at least one optional declaration, this description will correspond to an "empty" component that does not provide endpoints, does not contain embedded components, and does not support a security interface.
Examples of CDL files
KscProductEventsProvider.cdl
// Component provides one endpoint.
component kl.KscProductEventsProvider
endpoints {
eventProvider : kl.IKscProductEventsProvider
}
KscConnectorComponent.cdl
// Component provides multiple endpoints.
component kl.KscConnectorComponent
endpoints {
KscConnCommandSender : kl.IKscConnCommandSender
KscConnController : kl.IKscConnController
KscConnSettingsHolder : kl.IKscConnSettingsHolder
KscDataProvider : kl.IKscDataProvider
ProductDataHolder : kl.IProductDataHolder
KscDataNotifier : kl.IKscDataNotifier
KscConnectorStateNotifier : kl.IKscConnectorStateNotifier
}
FsVerifier.cdl
/* Component does not provide endpoints, supports
* a security interface, and contains one instance
* of another component. */
component FsVerifier
security Approve
components {
verifyComp : Verify
}
Page top