CDL-описания помещаются в отдельные файлы *.cdl
и содержат декларации на языке CDL (Component Definition Language):
component <имя компонента>
security <имя интерфейса>
endpoints {
<имя службы : имя интерфейса>
[...]
}
Каждая служба указывается отдельной строкой. Имя службы не может содержать символов подчеркивания _
. Список может содержать несколько служб с одинаковым интерфейсом. Каждая служба в списке имеет уникальное имя.
components {
<имя экземпляра компонента : имя компонента>
[...]
}
Каждый экземпляр компонента указывается отдельной строкой. Имя экземпляра компонента не может содержать символов подчеркивания _
. Список может содержать несколько экземпляров одного компонента. Каждый экземпляр компонента в списке имеет уникальное имя.
Язык CDL чувствителен к регистру символов.
В CDL-описании могут использоваться однострочные и многострочные комментарии.
В CDL-описании используется как минимум одна опциональная декларация. Если в CDL-описании не использовать ни одной опциональной декларации, то этому описанию будет соответствовать "пустой" компонент, который не предоставляет служб, не содержит вложенных компонентов и не поддерживает интерфейс безопасности.
Примеры CDL-файлов
KscProductEventsProvider.cdl
// Компонент предоставляет одну службу.
component kl.KscProductEventsProvider
endpoints {
eventProvider : kl.IKscProductEventsProvider
}
KscConnectorComponent.cdl
// Компонент предоставляет несколько служб.
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 FsVerifier
security Approve
components {
verifyComp : Verify
}
В начало