EDL-описание

21 мая 2024

ID ice_edl

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

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

    entity <имя класса процессов>

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

    components {

    <имя экземпляра компонента : имя компонента>

    [...]

    }

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

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

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

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

    endpoints {

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

    [...]

    }

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

Язык EDL чувствителен к регистру символов.

В EDL-описании могут использоваться однострочные и многострочные комментарии.

Интерфейс безопасности и предоставляемые службы могут задаваться в EDL-описании и в CDL-описании. Если при разработке компонента решения используются уже готовые составные части (например, в виде библиотек), которые сопровождаются CDL-описаниями, то целесообразно сослаться на них из EDL-описания через декларацию components. В противном случае можно описать все предоставляемые службы в EDL-описании. Кроме того, в EDL-описании и в каждом CDL-описании можно отдельно задать интерфейс безопасности.

Примеры EDL-файлов

Hello.edl

// Класс процессов, которые не содержат компонентов.

entity Hello

Signald.edl

/* Класс процессов, которые содержат

* один экземпляр одного компонента. */

entity kl.Signald

components {

signals : kl.Signals

}

LIGHTCRAFT.edl

/* Класс процессов, которые содержат

* два экземпляра разных компонентов. */

entity kl.drivers.LIGHTCRAFT

components {

KUSB : kl.drivers.KUSB

KIDF : kl.drivers.KIDF

}

Downloader.edl

/* Класс процессов, которые не содержат

* компонентов и предоставляют одну службу. */

entity updater.Downloader

endpoints {

download : updater.Download

}

Вам помогла эта статья?
Что нам нужно улучшить?
Спасибо за ваш отзыв, вы помогаете нам становиться лучше!
Спасибо за ваш отзыв, вы помогаете нам становиться лучше!