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;
103 if (next_state_id != ifsm_state::No_State_Change)
112 do_exits(
p_root, p_state);
118 if (next_state_id != ifsm_state::No_State_Change)
121 p_state = state_list[next_state_id];
144 s2 = adjust_depth(s2, depth2 - depth1);
164 while (s != ETL_NULLPTR)
195 if ((p_root != p_target) && (p_target->p_parent != ETL_NULLPTR))
197 if (p_target->p_parent != p_root)
200 do_enters(p_root, p_target->p_parent,
false);
204 p_target->p_parent->p_active_child = p_target;
211 if (activate_default_children)
213 while (p_target->p_default_child != ETL_NULLPTR)
215 p_target = p_target->p_default_child;
216 p_target->p_parent->p_active_child = p_target;
217 next_state = p_target->on_enter_state();
235 while (p_current->p_active_child != ETL_NULLPTR)
237 p_current = p_current->p_active_child;
241 while (p_current != p_root)
243 p_current->on_exit_state();
244 p_current = p_current->p_parent;