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() ;
}
Beispiel #3
0
void fsm_manager::clear()
{
    for(auto& pair: m_container)
    {
        free_fsm(pair.second) ;
    }

    m_container.clear() ;
}
Beispiel #4
0
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) ;
    }
}
Beispiel #5
0
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;
}