Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Разработку приложения начинают с описания его интерфейсов на 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, что должен быть подключен в исходные файлы клиента и сервера.
Дата публикования: 2015-04-07; Прочитано: 296 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!