OpenU.Ru
Спецификация значимого явления, имеющего положение во времени и пространстве.
См. state machine, transition,
trigger.
Семантика
В конечном автомате событие может запустить
переход в новое состояние. У такого события есть список (возможно, пустой) параметров
которые несут информацию от источника события к его получателю. У каждого события
есть неявный параметр - время, когда оно происходит. Все прочие параметры представляют
собой часть определения события.
У экземпляра события есть аргументы (действительные значения), соответствующие
параметрам события. Значение каждого параметра доступно действию, прикрепленному
к переходу, который запускается этим событием. Существует четыре вида событий.
1. Событие вызова
(call event)
Получение запроса на вызов операции. Ожидаемый результат
- выполнение операции путем запуска перехода к получателю события. Параметры
события являются ссылками на операцию, её параметры, а также неявно передаваемый
указатель возврата. После завершения перехода (или же немедленно, если переход
не был запущен) управление возвращается к объекту, вызвавшему операцию.
2. Событие изменения
(change event)
Удовлетворение логического условия, которое определяется выражением события.
Параметров у такого события нет. События такого рода подразумевают постоянную
проверку условия. Событие происходит тогда, когда условие становится истинным.
Впрочем, в действительности, моменты, когда логическое выражение становится
истинным, могут быть ограничены другими событиями, так что в механизме постоянного
опроса обычно нет необходимости.
3. Событие сигнала
(signal event)
Получение сигнала, который представляет собой явно именованную сущность, чье
предназначение состоит в обеспечении коммуникации между объектами. У сигнала
есть сносок параметров, который явно отправляется одним объектом другому объекту
или целому множеству объектов. Под общей пересылкой события нужно понимать отправку
этого события всему множеству объектов, хотя в действительности это можно реализовать
в программном коде более эффективным образом. Отправитель явно указывает аргументы
сигнала, существующие на момент его отправки. Сигнал, который отправляется множеству
объектов, может запускать нуль или один переход в каждом из них.
4. Событие сигнала
(signal event)
Сигналы представляют собой то средство, с помощью которого объекты осуществляют
асинхронную коммуникацию друг с другом. Для синхронной коммуникации нужно использовать
два асинхронных сигнала, идущих в противоположных направлениях.
Сигналы можно обобщать. Сигнал-прямой потомок выводится из сигнала-прямой предок,
наследуя при этом все его параметры, к которым он может добавить свои собственные.
Сигнал-потомок может запускать те же переходы, что и его предки.
5. Событие времени
(time event)
Удовлетворение выражения, описывающего время, например, наступление абсолютного
времени или истечение определенного промежутка времени после того, как объект
вошел в данное состояние. Обратите внимание, что и абсолютное, и фактическое
время можно определить по отношению к виртуальным внутренним или реальным часам
(в этом случае это время может быть разным у различных объектов).
Нотация
См. статью энциклопедии о каждом из вышеперечисленных видов
событий.
Стандартные элементы
create (создавать). destroy
(уничтожить).