void map_ids(const States& o){ Container::map_id_to_number()[o.getId()] = Container::get_id_counter(); if(not o.calls.empty()){ for(std::vector<Call>::const_iterator i=o.calls.begin();i!=o.calls.end();i++){ i->lib=o.lib; i->id = o.getId(); map_ids(*i); } } }
std::string searchSimpleState(const States& o){ if(not o.calls.empty()){ for(std::vector<Call>::const_iterator i=o.calls.begin();i!=o.calls.end();i++){ if(i->type=="task"){ return i->getId(); } if(i->type=="bt"){ return i->getId()+"/"+i->text; } if(i->type=="fsm"){ bool isResolved = o.lib->contains_fsm(i->text); if(isResolved){ const Fsm& fsm = o.lib->fsms.at(i->text); return searchSimpleState(fsm.states.front()); } } } }else{ return o.getId(); } return "NOT-FOUND"; }