KasperskyOS Community Edition 1.0

О примере echo

Пример echo описывает простейший случай взаимодействия двух сущностей:

  1. Сущность Client передает сущности Server число (value).
  2. Сущность Server изменяет это число и передает новое число (result) сущности Client.
  3. Сущность Client выводит число result на экран.

Чтобы организовать такое взаимодействие сущностей, потребуется:

  1. Соединить сущности Client и Server, используя init-описание.
  2. Реализовать на сервере интерфейс с единственным методом Ping, который имеет один входной аргумент – исходное число (value) и один выходной аргумент – измененное число (result).

    Описание метода Ping на языке IDL:

    Ping(in UInt32 value, out UInt32 result);

  3. Создать файлы статических описаний на языках EDL, CDL и IDL. С помощью компилятора NK сгенерировать файлы, содержащие транспортные методы и типы (прокси-объект, диспетчеры и т.д.).
  4. В коде сущности Client инициализировать все необходимые объекты (транспорт, прокси-объект, структуру запроса и др.) и вызвать интерфейсный метод.
  5. В коде сущности Server подготовить все необходимые объекты (транспорт, диспетчер компонента и диспетчер сущности и др.), принять запрос от клиента, обработать его и отправить ответ.

Пример echo состоит из следующих исходных файлов:

  • client/src/client.c – реализация сущности Client;
  • server/src/server.c – реализация сущности Server;
  • resources/Server.edl, resources/Client.edl, resources/Ping.cdl, resources/Ping.idl – статические описания;
  • init.yaml – init-описание.