CDL-описание

CDL-описания помещаются в отдельные файлы *.cdl и содержат декларации на языке CDL (Component Definition Language):

  1. Имя компонента. Используется декларация:

    component <имя компонента>

  2. [Опционально] Интерфейс безопасности. Используется декларация:

    security <имя интерфейса>

  3. [Опционально] Список служб. Используется декларация:

    endpoints {

    <имя службы : имя интерфейса>

    [...]

    }

    Каждая служба указывается отдельной строкой. Имя службы не может содержать символов подчеркивания _. Список может содержать несколько служб с одинаковым интерфейсом. Каждая служба в списке имеет уникальное имя.

  4. [Опционально] Список экземпляров вложенных компонентов. Используется декларация:

    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

}

В начало