28 #ifndef __SYSTEMC_EXT_CORE_SC_PROCESS_HANDLE_HH__ 29 #define __SYSTEMC_EXT_CORE_SC_PROCESS_HANDLE_HH__ 34 #include "../utils/sc_report_handler.hh" 45 virtual void call() = 0;
52 typedef void (T::*TFunc)();
58 void call()
override { (t->*func)(); }
63 virtual void throw_it() = 0;
101 virtual const char *what()
const throw();
102 virtual bool is_reset()
const;
163 operator ::sc_gem5::Process * ()
const {
return _gem5_process; }
179 const char *
name()
const;
185 bool dynamic()
const;
186 bool terminated()
const;
187 const sc_event &terminated_event()
const;
202 const sc_event &reset_event()
const;
209 template <
typename T>
215 if (!_gem5_process) {
236 #endif //__SYSTEMC_EXT_CORE_SC_PROCESS_HANDLE_HH__
void throw_it(const T &user_defined_exception, sc_descendent_inclusion_info include_descendants=SC_NO_DESCENDANTS)
sc_process_b(const char *name)
const std::string & name()
static sc_process_b * sc_get_current_process_b()
#define SC_REPORT_WARNING(msg_type, msg)
const sc_curr_proc_info * sc_curr_proc_handle
sc_descendent_inclusion_info
static bool operator==(const ExtMachInst &emi1, const ExtMachInst &emi2)
ExceptionWrapper(const T &t)
virtual ~ProcessFuncWrapper()
void throw_it_wrapper(Process *p, ExceptionWrapperBase &exc, bool inc_kids)
ProcessMemberFuncWrapper(T *t, TFunc func)
sc_process_b * sc_get_curr_process_handle()
const char SC_ID_EMPTY_PROCESS_HANDLE_[]
bool operator!=(const RefCountingPtr< T > &l, const RefCountingPtr< T > &r)
Check for inequality of two reference counting pointers.
sc_process_handle sc_get_current_process_handle()
bool sc_allow_process_control_corners
sc_process_b * process_handle
bool operator<(const Time &l, const Time &r)
::sc_gem5::Process * _gem5_process
void sc_set_location(const char *file, int lineno)