Лекция: Разработка IDL-файла

Разработку приложения начинают с описания его интерфейсов на IDL.

Каждому интерфейсу ставят в соответствие универсальный уникальный идентификатор (UUID) -128-бітне число, генерирующее с помощью специального алгоритма, который обеспечивает высокую степень уникальности.

За этим идентификатором RPC-клиенты идентифицируют интерфейсы, экспортированные серверами.

Для создания UUID используют утилиту uuidgen.

Каждый интерфейс сопровождают атрибуты, перечисленные в квадратных дужках перед ключевым словом и interface:

· uuid — UUID для этого интерфейса;

· version — версия интерфейса;

· auto_handle — значит, что клиентское применение не должно явно задавать код для установления соединения с сервером — это будет сделано из кода заглушки (есть и другие способы организации связи, например, при наличии атрибута implicitjiandle связь должна быть установлена явно).

Каждый параметр интерфейса тоже сопровождают атрибуты:

♦ in, out — режим параметра (in — входной, out — выходной);

♦ string — параметр нужно рассматривать как строка символов.

Приведем пример IDL-файла, который задает один интерфейс с одной процедурой. Дальше будем считать, что он называется mугрс. idl.

[uuid(c0579cff-e76a-417d-878b-1195d366385). version(l.O), auto_handle]

interface thello { /* определение интерфейса ihello */

void say_msg([in.string] unsigned char* msg);

}

IDL-файл обрабатывают IDL-компилятором (midl):

midl.exe /app_config myrpc.idl

Параметр /app_config задают в случае, когда в IDL-файле присутствуют атрибуты, которые касаются всего применения (в нашем случае это autojiandl e). Если его не указать, такие атрибуты задаются в отдельном файле с расширением .acf.

В результате обработки IDL-файла создадутся файлы заглушек для клиента и сервера (myrpc_c.c i myrpc_s.c), которые нужно скомпоновать в соответствующие выполняемые файлы, а также заглавный файл myrpc.h, что должен быть подключен в исходные файлы клиента и сервера.

еще рефераты
Еще работы по информатике