Spec-Zone.ru › Ada 95
Справочник по Ada 95

E.2.2 Библиотечные модули удалённых типов

Библиотечный модуль удалённых типов поддерживает определение типов, предназначенных для использования в межпроцессорном взаимодействии.

Синтаксис

Форма директивы Remote_Types выглядит следующим образом:
pragma Remote_Types[(имя_модуля_библиотеки)];

Правила допустимости

Модуль удалённых типов — это модуль, к которому применяется директива Remote_Types. Следующие ограничения применяются к объявлению такого модуля:
  • он должен быть предварительно вычисляемым;
  • он должен семантически зависеть только от объявленных чистых, общих пассивных или других модулей удалённых типов;
  • он не должен содержать объявление каких-либо переменных во видимой части модуля;
  • если полное представление типа, объявленного во видимой части модуля, имеет часть, являющуюся типом доступа, отличным от удалённого, то этот тип доступа или тип какой-либо части, содержащей подкомпоненту типа доступа, должен иметь заданные пользователем атрибуты Read и Write.
Тип доступа, объявленный во видимой части модуля удалённых типов или модуля интерфейса удалённых вызовов, называется удаленным типом доступа. Такой тип должен быть:
  • типом доступа к подпрограмме, или
  • общим типом доступа, который обозначает универсальный ограниченный частный тип или универсальное расширение частного типа, все предки которого являются либо расширениями частных типов, либо ограниченными частными типами.
Тип, производный от удалённого типа доступа, также является удалённым типом доступа.
Следующие ограничения применяются к использованию типа удалённого доступа к подпрограмме:
  • Значение типа удалённого доступа к подпрограмме должно преобразовываться только в другой (согласованный по типу подтипа) тип удалённого доступа к подпрограмме;
  • Префикс атрибута доступа attribute_reference, который возвращает значение типа удалённого доступа к подпрограмме, должен статически обозначать подпрограмму (согласованную по типу подтипа).
Следующие ограничения применяются к использованию удалённого типа доступа к универсальному типу:
  • Примитивные подпрограммы соответствующего конкретного ограниченного частного типа должны иметь только параметры доступа, если они являются управляющими формальными параметрами; каждый формальный параметр, не являющийся управляющим, должен иметь либо неограниченный тип, либо тип с атрибутами Read и Write, заданными с помощью определения_атрибута;
  • Значение типа удалённого доступа к универсальному типу должно явно преобразовываться только в другой тип удалённого доступа к универсальному типу;
  • Значение типа удалённого доступа к универсальному типу должно быть разыменовано (или неявным образом преобразовано в анонимный тип доступа) только в рамках вызова диспетчеризации, где значение обозначает управляющий операнд вызова (см. E.4, ``Удалённые вызовы подпрограмм'').
  • Атрибуты Storage_Pool и Storage_Size не определены для удаленных типов доступа к универсальным типам; ожидаемый тип для аллокатора не должен быть удаленным типом доступа к универсальному типу; удаленный тип доступа к универсальному типу не должен быть фактическим параметром для формального типа доступа к универсальному типу.
ПРИМЕЧАНИЯ
5 Библиотечный модуль удалённых типов не обязательно должен быть чистым, и определённые им типы могут включать уровни косвенности, реализованные с использованием типов доступа. Заданные пользователем атрибуты Read и Write (см. 13.13.2) позволяют передавать значения такого типа между активными разделами, при этом Write обеспечивает маршаллинг представления, а Read — размаршаллинг любых уровней косвенности.


Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API