dol: initial dol commit
[jump.git] / dol / src / dol / visitor / hdsd / scd / fsm / scd_sts_idle.cpp
1 #include "fsm/scd_sts_idle.h"
2
3 #include "scd_logging.h"
4 #include "scd_exception.h"
5 #include "scd_cont_man_slave.h"
6
7
8 void scd_sts_idle::recv_time_req()
9 {
10     if (_sim.get_poller().wait(SCD_CONT_DELAY))
11     {
12         // had activity on sockets => we might be receiving data
13         scd_command* cmd = new scd_command(SCD_CM_CONTROL, SCD_CM_TIME_NACK);
14         _fsm.send_command(cmd);
15     }
16     else
17     {
18         scd_command* cmd = new scd_command(SCD_CM_CONTROL, SCD_CM_TIME_ACK);
19         _fsm.send_command(cmd);
20         _fsm.save_state();
21         _fsm.set_state(_st_time_ack);
22     }
23 }
24
25
26 void scd_sts_idle::set_busy()
27 {
28     scd_command* cmd = new scd_command(SCD_CM_CONTROL, SCD_CM_BUSY);
29     _fsm.send_command(cmd);
30     _fsm.set_state(_st_busy);
31 }
32
33
34 void scd_sts_idle::set_done()
35 {
36     scd_warn("slave: transition attempt from idle to done");
37 }