An event can trigger a change of the active state configuration (if at least one transition is enabled when the event is processed).

An event...

  • ...can have parameters.

  • ...can have priority.

  • ...must have an ID which >= 0.

  • ...must not have the ID 4.294.967.295 (0xFFFFFFFF) which is reserved by the implementation.

The type for event IDs is event_id. The type event_id is an alias for std::uint32_t.

The event ID with the maximum value of event_id (4.294.967.295 or 0xFFFFFFFF) is the library defined ID Y_COMPLETION_EVENT_ID and may not be used for user events!

The priority of an event is considered if and only if a asynchronous state machine is used. The type for event priority is event_priority and it is an alias for std::int8_t.

Events with higher priority are handled by the state machine before events with lower priority.

The event priority 0 is the library defined DEFAULT_EVENT_PRIORITY.

The event priority 127 is the library defined STATE_MACHINE_INTERNAL_EVENT_PRIORITY and may not be used for user events!

During event processing an event can be processed, discarded, or deferred.