Этап 3: создание спецификации rpcgen
После определения структуры распределенной программы выполняется подготовка спецификации rpcgen. По сути, файл спецификации rpcgen содержит объявление удаленной программы, а также используемых в ней структур данных. материалы для зубных протезов
Файл спецификации содержит константы, определения типов и объявления для клиентской и серверной программ. Точнее, файл спецификации содержит:
- объявления для констант, используемых в клиенте или, чаще всего, в сервере (в удаленной программе);
- объявления применяемых типов данных (в частности, в параметрах вызова удаленных процедур);
- объявления удаленных программ, процедур, содержащихся в каждой программе, и типов их параметров.
Напомним, что спецификация RPC определяет использование номеров для обозначения удаленных программ и содержащихся в них удаленных процедур. Объявление программы в файле спецификации содержит такие сведения, как номер программы по спецификации RPC, номер ее версии и номера, присвоенные каждой процедуре в программе.
Все спецификации должны быть определены на языке программирования RPC, а не на языке С. Хотя различия между этими языками невелики, иногда они могут привести к путанице. Например, в языке RPC для обозначения символьных строк с нулевым символом в конце применяется ключевое слово string, а в языке С используется тип данных char *. Даже опытным программистам иногда приходится несколько раз исправлять свою спецификацию для устранения подобных несоответствий.
Пример спецификации rpcgen приведен в файле rdict.x. В этом файле содержатся примеры объявлений для версии программы базы данных словаря для RPC
Файл спецификации rpcgen не содержит записи для всех объявлений, находящихся в первоначальной программе. В нем определены только те константы и типы, которые используются совместно клиентской и серверной программами или требуются для определения параметров.
Этот пример файла спецификации начинается с определения констант MAXWORD и DICTSIZE. В первоначальном приложении обе эти константы определены как символические с использованием оператора define препроцессора языка С. В языке RPC не используются объявления символических констант С; в этом языке символические константы должны быть объявлены с применением ключевого слова const и им должно быть присвоено значение с помощью знака равенства (=).
В соответствие с общепринятыми соглашениями, в файле спецификации для определения процедур и программ используются имена, состоящие из прописных букв. Как будет показано ниже, эти имена становятся символическими константами, которые могут применяться в программах С. Использование прописных букв не является абсолютно необходимым, но помогает избегать конфликтов имен.