Инструкции send и receive предназначены для конфигурирования событий вызова метода для указанного интерфейса. Инструкция send позволяет конфигурировать события отправки сообщений при вызове всех экземпляров метода для указанного интерфейса. Инструкция receive позволяет конфигурировать события доставки этих сообщений.
Синтаксис
<iface-method-policy-binding> ::=
<event-type> [<direction>] [<iface-method>] "="
<policy-list> ";"
<event-type> ::= "send"|"receive"
<direction> ::= "in"|"out"
<iface-method> ::= <interface-method-name>
["(" <arg-name> {"," <arg-name> "}"]
["[" <src-sid> "," <dst-sid> "]"]
Элементы
|
Тип события, проверяемого при вызове метода. Допустимые значения:
|
|
Указание направленности сообщения. Допустимые значения:
|
|
Полное имя метода в интерфейсе и необязательный список аргументов. Имена аргументов должны быть согласованы с именами из IDL-описания метода. Если метод не указан, то инструкция |
|
Полное имя метода в интерфейсе. В качестве интерфейса может быть указан произвольный интерфейс, в том числе тот, который сущность не реализует. Имеет следующий формат:
|
|
Имя аргумента. |
|
Имя аргумента, содержащего идентификатор контекста безопасности сущности-отправителя сообщения. Этот аргумент задается неявно и передается в каждом событии взаимодействия сущности. Имя аргумента задается произвольно. По этому имени аргумент можно передать политикам безопасности в списке аргументов. |
|
Имя аргумента, содержащего идентификатор контекста безопасности сущности-получателя сообщения. Этот аргумент задается неявно и передается в каждом событии взаимодействия сущности. Имя аргумента задается произвольно. По этому имени аргумент можно передать политикам безопасности в списке аргументов. |
|
Список политик безопасности, которые будут применены к событию. |
Пример
/* Политики, применяемые к вызовам всех методов сущности. Вычисляются каждый раз, когда сущность получает сообщение-запрос (независимо от интерфейса или метода, по которому передается запрос).
*/
receive in = tl.control["request"];
/* Политики, применяемые каждый раз, когда сущность возвращает сообщение-ответ.
*/
send out = tl.control["response"];
Конфигурирование событий с помощью инструкций send и receive показано на примере взаимодействия двух сущностей (см. рис. ниже).

Конфигурирование событий отправки и доставки сообщений с помощью инструкций send и receive
В начало