KasperskyOS Community Edition 1.2

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 }