1 #include "fsm/scd_stm_term_req.h"
3 #include "scd_logging.h"
4 #include "scd_exception.h"
5 #include "scd_cont_man_master.h"
8 void scd_stm_term_req::set_busy()
15 void scd_stm_term_req::set_idle(const sc_core::sc_time& time)
22 void scd_stm_term_req::process()
27 std::list<scd_cont_slave_wrapper*>::iterator iter;
29 for (iter = _slaves.begin(); iter != _slaves.end(); iter++)
31 if ( !(*iter)->term_req() && !(*iter)->term_ack() )
33 // received term_nack from this slave
38 else if ( !(*iter)->term_ack() )
40 // this slave did not respond yet
45 // all slaves acknkowledged
46 for (iter = _slaves.begin(); iter != _slaves.end(); iter++)
49 _fsm.set_state(_st_terminate);
53 void scd_stm_term_req::_send_term_nack()
55 std::list<scd_cont_slave_wrapper*>::iterator iter;
57 for (iter = _slaves.begin(); iter != _slaves.end(); iter++)
58 (*iter)->send_term_nack();