Файлы описаний

Описание сущности client

Сущность client не реализует ни одного интерфейса, поэтому в edl-описании достаточно объявить имя сущности.

client.edl

/* Описание сущности client. */

entity client

Описание сущности server

Сущность server реализует интерфейс IPing, содержащий два метода – Ping и Pong. Как и в примере echo, требуется объявить отдельный компонент (например ping), содержащий реализацию интерфейса IPing.

В edl-описании сущности server необходимо указать, что она содержит экземпляр компонента ping:

server.edl

/* Описание сущности server. */

entity server

/* ping_comp - именованный экземпляр компонента ping. */

ping_comp: ping

В cdl-описании компонента ping необходимо указать, что он содержит реализацию интерфейса IPing:

ping.cdl

/* Описание компонента ping. */

component ping

/* ping_impl - реализация интерфейса IPing, объявленного в пакете ping. */

ping_impl: ping.IPing

В пакете ping необходимо объявить интерфейс IPing, содержащий два метода – Ping и Pong:

ping.idl

/* Описание пакета ping. */

package ping

interface IPing {

Ping(in UInt32 value, out UInt32 result);

Pong(in UInt32 value, out UInt32 result);

}

Init-описание

Чтобы сущность client могла вызвать метод сущности server, между ними требуется создать IPC-канал.

init.yaml

entities:

- name: client

connections:

- target: server

id: server_connection

- name: server

Канал имеет имя server_connection. С помощью локатора сервисов можно получить дескриптор этого канала.

В начало