+#ifndef SCD_STSW_TERM_REQ_H
+#define SCD_STSW_TERM_REQ_H
+
+#include "fsm/scd_stsw_base.h"
+
+
+/* forward declaration */
+class scd_cont_slave_wrapper;
+
+
+class scd_stsw_term_req : public scd_stsw_base
+{
+public:
+ scd_stsw_term_req(scd_simulator& sim, scd_cont_slave_wrapper& fsm):
+ scd_stsw_base(sim, fsm) { _name = "term_req"; }
+ virtual ~scd_stsw_term_req() {}
+
+ /* sdc_stsw_base */
+ void recv_term_nack();
+ void recv_term_ack();
+
+ /* scd_cont_wrapper_if */
+ void send_term_nack();
+ bool term_req() const;
+
+ /* scd_cont_fsm_if */
+ void set_busy();
+ void set_idle(const sc_core::sc_time& time);
+ void set_done();
+};
+
+#endif