Current behavior:
The back-end handles transitions with Kleene events by converting them to the Kleene event (std::any or boost::any) before forwarding them to actions and guards.
If access to the original event is required, the Kleene event has to be converted back with an any_cast(...).
Depending on the size of the original event, the conversion may require heap allocation. This could prevent the usage of Kleene events in constrained environments without heap allocation.
New behavior:
Treat the Kleene event in the front-end's transition table only as a placeholder. Directly forward the original event to actions and guards without converting it.
This makes working with Kleene events more convenient and eliminates the possibility of heap allocations.
Current behavior:
The back-end handles transitions with Kleene events by converting them to the Kleene event (
std::anyorboost::any) before forwarding them to actions and guards.If access to the original event is required, the Kleene event has to be converted back with an
any_cast(...).Depending on the size of the original event, the conversion may require heap allocation. This could prevent the usage of Kleene events in constrained environments without heap allocation.
New behavior:
Treat the Kleene event in the front-end's transition table only as a placeholder. Directly forward the original event to actions and guards without converting it.
This makes working with Kleene events more convenient and eliminates the possibility of heap allocations.