void fsm_manager::destroy_fsm(base_fsm* object) { fsm_container::iterator it = m_container.find(object->m_id) ; if(it != m_container.end()) { m_container.erase(it) ; free_fsm(object) ; } }
void fsm_manager::clear() { for(fsm_container::iterator it = m_container.begin();it!=m_container.end();++it) { free_fsm(it->second) ; } m_container.clear() ; }
void fsm_manager::clear() { for(auto& pair: m_container) { free_fsm(pair.second) ; } m_container.clear() ; }
void fsm_manager::destroy_fsm(int fsm_id) { fsm_container::iterator it = m_container.find(fsm_id) ; if(it != m_container.end() ) { base_fsm* fsm = it->second ; m_container.erase(it) ; free_fsm(fsm) ; } }
int main(void) { FSM* fsm = init_fsm(); int value0[] = {0}; int value1[] = {1}; printf("(%d,%d),",fsm->currentState,fsm_transition(fsm,value0)); printf("(%d,%d),",fsm->currentState,fsm_transition(fsm,value1)); printf("(%d,%d),",fsm->currentState,fsm_transition(fsm,value1)); printf("(%d,%d),",fsm->currentState,fsm_transition(fsm,value0)); printf("(%d,%d),",fsm->currentState,fsm_transition(fsm,value0)); printf("(%d,%d),",fsm->currentState,fsm_transition(fsm,value0)); printf("(%d,%d),",fsm->currentState,fsm_transition(fsm,value1)); printf("(%d,%d),",fsm->currentState,fsm_transition(fsm,value1)); printf("(%d,%d),",fsm->currentState,fsm_transition(fsm,value0)); free_fsm(fsm); return 0; }