dol: initial dol commit
[jump.git] / dol / src / dol / visitor / hdsd / scd / fsm / scd_cont_wrapper_if.h
diff --git a/dol/src/dol/visitor/hdsd/scd/fsm/scd_cont_wrapper_if.h b/dol/src/dol/visitor/hdsd/scd/fsm/scd_cont_wrapper_if.h
new file mode 100644 (file)
index 0000000..12d6f50
--- /dev/null
@@ -0,0 +1,80 @@
+#ifndef SCD_CONT_WRAPPER_IF_H
+#define SCD_CONT_WRAPPER_IF_H
+
+#include "systemc"
+
+
+/**
+ * Extends the public interface of the slave wrapper FSM.
+ */
+class scd_cont_wrapper_if
+{
+public:
+    /**
+     * Sends a time_req command to the slave.
+     */
+    virtual void send_time_req() = 0;
+
+    /**
+     * Sends a time_nack command to the slave.
+     */
+    virtual void send_time_nack() = 0;
+
+    /**
+     * Sends a time command to the slave.
+     */
+    virtual void send_time(const sc_core::sc_time& time) = 0;
+
+    /**
+     * Sends a term_req command to the slave.
+     */
+    virtual void send_term_req() = 0;
+
+    /**
+     * Sends a term_nack command to the slave.
+     */
+    virtual void send_term_nack() = 0;
+
+    /**
+     * Sends a term command to the slave.
+     */
+    virtual void send_term() = 0;
+
+    /**
+     * Inidcates if the slave is in term_req state.
+     * \return true if the slave seems to be in time_req state
+     */
+    virtual bool time_req() const = 0;
+
+    /**
+     * Inidcates if the slave is in time_ack state.
+     * \return true if the slave seems to be in time_ack state
+     */
+    virtual bool time_ack() const = 0;
+
+    /**
+     * Inidcates if the slave is in term_req state.
+     * \return true if the slave seems to be in term_req state
+     */
+    virtual bool term_req() const = 0;
+
+    /**
+     * Inidcates if the slave is in term_ack state.
+     * \return true if the slave seems to be in term_ack state
+     */
+    virtual bool term_ack() const = 0;
+
+    /**
+     * Inidcates if the slave is in idle state.
+     * \return true if the slave seems to be in idle state
+     */
+    virtual bool idle() const = 0;
+
+    /**
+     * Indicates if the slave is in done state.
+     * \return true if the slave seems to be in done state
+     */
+    virtual bool done() const = 0;
+};
+
+#endif