Правила передачи сообщений
Когда Вы посылаете сообщение из порта, оно пересылается наружу по всем внешним соединениям этого порта с портами других активных объектов.
Когда сообщение приходит
в порт, оно пересылается во все соединенные диаграммы состояний и по
всем внутренним соединениям активного объекта, которому принадлежит
этот порт.
Поступившее в порт сообщение будет обрабатываться по-разному в
зависимости от того, откуда это сообщение поступило:
- Если сообщение поступило в порт из порта вложенного объекта, то оно посылается дальше по всем внешним соединениям этого порта с портами других активных объектов. В этом случае вызывается метод порта send() и выполняется Действие при отправке, заданное для этого порта.
- Если же сообщение поступило в порт "снаружи" из порта
активного объекта, находящегося выше или на том же уровне
иерархии, что и активный объект-владелец этого порта, то это
сообщение считается принятым и передается дальше по
всем внутренним соединениям активного объекта, которому принадлежит
этот порт.
В этом случае вызывается метод порта receive() и выполняется Действие при получении, заданное для этого порта.
При поступлении сообщения в диаграмму состояний, вызывается метод receiveMessage()
этой диаграммы состояний.
Правила пересылки сообщений проиллюстрированы на рисунке.

См. также
Передача сообщений
Сообщения
Посылка сообщений
Получение сообщений