1 #include "fsm/scd_sts_done.h"
3 #include "scd_logging.h"
4 #include "scd_exception.h"
5 #include "scd_cont_man_slave.h"
6 #include "scd_cont_man.h"
9 void scd_sts_done::recv_time_req()
11 if (_sim.get_poller().wait(SCD_CONT_DELAY))
13 // had activity on sockets => we might be receiving data
14 scd_command* cmd = new scd_command(SCD_CM_CONTROL, SCD_CM_TIME_NACK);
15 _fsm.send_command(cmd);
19 scd_command* cmd = new scd_command(SCD_CM_CONTROL, SCD_CM_TIME_ACK);
20 _fsm.send_command(cmd);
22 _fsm.set_state(_st_time_ack);
27 void scd_sts_done::recv_term_req()
29 if (_sim.get_poller().wait(SCD_CONT_DELAY))
31 // had activity on sockets => we might be receiving data
32 scd_command* cmd = new scd_command(SCD_CM_CONTROL, SCD_CM_TERM_NACK);
33 _fsm.send_command(cmd);
37 scd_command* cmd = new scd_command(SCD_CM_CONTROL, SCD_CM_TERM_ACK);
38 _fsm.send_command(cmd);
40 _fsm.set_state(_st_term_ack);
45 void scd_sts_done::set_idle(const sc_core::sc_time& time)
47 scd_command* cmd = new scd_command(SCD_CM_CONTROL, SCD_CM_IDLE, time);
48 _fsm.send_command(cmd);
49 _fsm.set_state(_st_idle);
53 void scd_sts_done::set_busy()
55 scd_command* cmd = new scd_command(SCD_CM_CONTROL, SCD_CM_BUSY);
56 _fsm.send_command(cmd);
57 _fsm.set_state(_st_busy);