dol: initial dol commit
[jump.git] / dol / src / dol / visitor / hdsd / scd / fsm / scd_stsw_init.cpp
diff --git a/dol/src/dol/visitor/hdsd/scd/fsm/scd_stsw_init.cpp b/dol/src/dol/visitor/hdsd/scd/fsm/scd_stsw_init.cpp
new file mode 100644 (file)
index 0000000..d4f27bd
--- /dev/null
@@ -0,0 +1,58 @@
+#include "fsm/scd_stsw_init.h"
+
+#include "scd_logging.h"
+#include "scd_exception.h"
+#include "scd_cont_slave_wrapper.h"
+
+
+void scd_stsw_init::set_connected()
+{
+    _sim.get_poller().register_handler(_fsm, SOCK_EV_READ | SOCK_EV_CLOSE);
+    _fsm.set_state(_st_busy);
+}
+
+
+void scd_stsw_init::set_failed()
+{
+    _fsm.set_state(_st_failed);
+}
+
+
+void scd_stsw_init::set_idle(const sc_core::sc_time& time)
+{
+    scd_error("init: illegal call to set_idle()");
+    throw scd_exception("illegal call");
+}
+
+
+void scd_stsw_init::set_busy()
+{
+    scd_error("init: illegal call to set_idle()");
+    throw scd_exception("illegal call");
+}
+
+
+void scd_stsw_init::set_done()
+{
+    scd_error("init: illegal call to set_done()");
+    throw scd_exception("illegal call");
+}
+
+
+void scd_stsw_init::set_fail()
+{
+    _fsm.set_state(_st_failed);
+}
+
+
+void scd_stsw_init::process() {}
+
+
+bool scd_stsw_init::active() const { return false; }
+
+
+bool scd_stsw_init::advance_time() const
+{
+    scd_error("illegal call to advance_time()");
+    throw scd_exception("illegal call");
+}