15.11.1 Язык описания данных XDR

15.11.1 Язык описания данных XDR

Описания данных XDR похожи на описания данных в языках программирования и не являются слишком сложными. Существует несколько основных типов данных XDR: целые числа со знаком и без знака, последовательные (или порядковые) целые числа, строки ASCII, логические значения и числа с плавающей точкой. Для пересылки строк октетов общего вида применяется тип данных opaque (непрозрачный, без преобразования). В полях с этим типом данных может пересылаться зашифрованная информация. К более сложным типам данных относятся массивы, структуры и объединенные типы данных (union datatypes), построенные на основе базовых типов.

Порядковые целые числа позволяют присвоить значения каждому элементу короткого списка целых чисел. Простым примером порядкового целого числа является тип сообщения (msg_type), определяющий, будет ли сообщение запросом или ответом:

enum msg_type {

 CALL = 0,

 REPLY = 1

};

В данном поле может появляться только одно из целых чисел: 0 или 1. Ввод любого другого целого числа приведет к ошибке.

Структура определения тела сообщения запроса RPC:

struct call_body {

 unsigned int rpcvers; /* Версия должна быть равна 2 */

 unsigned int prog;    /* Это номер программы        */

 unsigned int vers;    /* Это версия программы       */

 unsigned int proc;    /* Определение процедуры      */

 opaque_auth cred;     /* Мандат, например userid    */

 opaque_auth verf;     /* Verifier для мандата       */

 /* Здесь может быть зашифрованное поле */

 /* начало описания специфичных для процедуры параметров */

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

1.3 Типы и Описания

Из книги C++ автора Хилл Мюррей

1.3 Типы и Описания Каждое имя и каждое выражение имеет тип, определяющий операции, которые могут над ними производиться. Например, описаниеint inch;определяет, что inch имеет тип int, то есть, inch является целой переменной.Описание – это оператор, который вводит имя в программе.


1.4.9 Описания

Из книги Справочное руководство по C++ автора Страустрап Бьярн

1.4.9 Описания Описание – это оператор, вводящий имя в программе. Оно может также инициализировать объект с этим именем. Выполнение описания означает, что когда поток управления доходит до описания, вычисляется инициализирующее выражение (инициализатор) и производится


2.1 Описания

Из книги Язык программирования С# 2005 и платформа .NET 2.0. [3-е издание] автора Троелсен Эндрю

2.1 Описания Прежде чем имя (идентификатор) может быть использовано в С++ программе, он должно быть описано. Это значит, что надо задать его тип, чтобы сообщить компилятору, к какого вида сущностям относится имя. Вот несколько примеров, иллюстрирующих разнообразие


8. Описания

Из книги Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ автора Борри Хелен

8. Описания Описания используются для определения интерпретации, дваемой каждому идентификатору. Они не обязательно резервируют память, связанную с идентификатором. Описания имеют вид:описание: спецификаторы_описания opt список_описателей opt ; описание_имени


8.5 Описания Классов

Из книги Linux глазами хакера автора Флёнов Михаил Евгеньевич

8.5 Описания Классов Класс есть тип. Его имя становится typedef-имя (см. #8.8), которое может быть использовано даже внутри самого спецификатора класса. Объекты класса состоят из последовтельности членов.спецификатор_класса: заголовок_класса (* список_членов opt *) заголовок_класса


8.10 Описания Перечислений

Из книги автора

8.10 Описания Перечислений Перечисления являются типами int с именованными констатами.enum_спецификатор: enum идентификатор opt (* enum_список *)enum_список: перечислитель enum_список , перечислительперечислитель: идентификатор идентификатор = константное_выражениеИдентификаторы в


14.2 Описания

Из книги автора

14.2 Описания описание: спецификаторы_описания opt список_описателей opt ; описание_имени asm-описаниеописание_имени: сост идентификатор ; enum идентификатор ;сост:class struct unionasm-описание: asm ( строка ) ;спецификаторы_описания: спецификатор_описания спецификаторы_описания


R.3.1 Описания и определения

Из книги автора

R.3.1 Описания и определения Описание ($$r.7) делает известным в программе одно или несколько имен. Описание считается определением, если только оно не описывает функцию без задания ее тела (§R.8.3), не содержит описателя extern (§R.7.11), не имеет части инициализации или тела функции,


R.7 Описания

Из книги автора

R.7 Описания Описания используются для интерпретации каждого из идентификаторов; необязательно, чтобы они сопровождались выделением памяти, сопоставляемой с идентификатором. Описания имеют видописания: спецификации-описания opt список-описателей


R.7.3 Описания asm

Из книги автора

R.7.3 Описания asm Описание asm имеет вид:описание-asm: asm ( строка-литерал );Назначение описания asm определяется реализацией. Обычно оно используется для передачи информации от транслятора к


R.17.3 Описания

Из книги автора

R.17.3 Описания описания: спецификации-описания opt список-описателей


Язык описания Web-сервисов (WSDL)

Из книги автора

Язык описания Web-сервисов (WSDL) В последних нескольких примерах вы могли видеть отдельные фрагменты WSDL-кода. Напомним, что WSDL – это основанная на XML грамматика, предназначенная для описания возможностей взаимодействия внешних клиентов с Web-методами, доступными по данному


Язык определения данных

Из книги автора

Язык определения данных Основные структуры базы данных - ее таблицы, просмотры и индексы - создаются с использованием подмножества языка SQL Firebird, известного как язык определения данных (Data Definition Language, DDL). Оператор DDL начинается с одного из ключевых слов CREATE, ALTER, RECREATE или DROP,


Язык определения данных (DDL)

Из книги автора

Язык определения данных (DDL) При определении метаданных для использования в базе данных Firebird мы используем лексикон операторов и параметров стандартов SQL для создания объекта с его типом и именем - или идентификатором, - а также для задания и изменения его атрибутов. В этом


11.5. Файлы описания зон

Из книги автора

11.5. Файлы описания зон Теперь посмотрим, что у нас находится в директории /var/named. Судя по файлу конфигурации /etc/named.conf, у нас здесь должно быть три файла:? named.ca — хранит ссылки на корневые серверы. Этот файл просто забирается с сервера internic.net, поэтому его редактировать не