48 hfsm(etl::message_router_id_t
id)
63 if (p_state == ETL_NULLPTR)
65 p_state = state_list[0];
88 do_exits(ETL_NULLPTR, p_state);
91 p_state = ETL_NULLPTR;
105 if (next_state_id != ifsm_state::No_State_Change)
114 do_exits(
p_root, p_state);
120 if (next_state_id != ifsm_state::No_State_Change)
123 p_state = state_list[next_state_id];
151 s2 = adjust_depth(s2, depth2 - depth1);
171 while (s != ETL_NULLPTR)
202 if ((p_root != p_target) && (p_target->p_parent != ETL_NULLPTR))
204 if (p_target->p_parent != p_root)
207 do_enters(p_root, p_target->p_parent,
false);
211 p_target->p_parent->p_active_child = p_target;
218 if (activate_default_children)
220 while (p_target->p_default_child != ETL_NULLPTR)
222 p_target = p_target->p_default_child;
223 p_target->p_parent->p_active_child = p_target;
224 next_state = p_target->on_enter_state();
242 while (p_current->p_active_child != ETL_NULLPTR)
244 p_current = p_current->p_active_child;
248 while (p_current != p_root)
250 p_current->on_exit_state();
251 p_current = p_current->p_parent;