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

E.4.1 Асинхронные удалённые вызовы

Этот подраздел вводит аспект Asynchronous, который можно указать, чтобы разрешить вызову удалённой подпрограммы возвращаться до завершения выполнения тела соответствующей удалённой подпрограммы.
Абзацы с 2 по 7 были удалены.

Статическая семантика

Для удалённой процедуры может быть указан следующий определяемый языком аспект представления:
Asynchronous
Тип аспекта Asynchronous — Boolean. Если он указан напрямую, aspect_definition должен быть статической выражением. Если он не указан, аспект имеет значение False.
Для типа удалённого доступа можно указать следующий определяемый языком аспект представления:
Asynchronous
Тип аспекта Asynchronous — Boolean. Если он указан напрямую, aspect_definition должен быть статической выражением. Если он не указан (включая наследование), аспект имеет значение False.

Правила легальности

Если аспект Asynchronous указан для удалённой процедуры, все формальные параметры процедуры должны быть режима in.
Если аспект Asynchronous указан для типа удалённого доступа, тип должен быть типом удалённого доступа к общему классу или типом удалённого доступа к процедуре, при этом формальные параметры указанного профиля типа должны быть все режима in.

Динамическая семантика

Удалённый вызов является асинхронным, если это вызов процедуры или вызов через значение типа доступа к процедуре, для которого аспект Asynchronous имеет значение True. Кроме того, если аспект Asynchronous имеет значение True для типа удалённого доступа к общему классу, то вызов диспетчеризации процедуры с управляемым операндом, обозначенным значением типа, является асинхронным, если все формальные параметры процедуры имеют режим in.

Требования к реализации

Асинхронные удалённые вызовы процедур должны быть реализованы таким образом, чтобы соответствующее тело выполнялось не более одного раза в результате вызова.


Spec-Zone.ru

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