43 #if !defined(sc_process_handle_h_INCLUDED) 44 #define sc_process_handle_h_INCLUDED 48 #if defined(_MSC_VER) && !defined(SC_WIN_DLL_WARN) 50 #pragma warning(disable: 4251) // DLL import for std::vector 57 class sc_process_handle;
59 operator == (
const sc_process_handle& left,
const sc_process_handle& right );
61 operator != (
const sc_process_handle& left,
const sc_process_handle& right );
63 operator < (
const sc_process_handle& left,
const sc_process_handle& right );
78 friend bool operator == (
const this_type& left,
const this_type& right );
79 friend bool operator != (
const this_type& left,
const this_type& right );
80 friend bool operator < (
const this_type& left,
const this_type& right );
102 inline bool dynamic()
const;
105 inline const std::vector<sc_event*>& get_child_events()
const;
106 inline const std::vector<sc_object*>& get_child_objects()
const;
107 inline sc_object* get_parent_object()
const;
108 inline sc_object* get_process_object()
const;
109 inline bool is_unwinding()
const;
112 inline const char* name()
const;
116 inline sc_event& reset_event()
const;
121 inline void sync_reset_off(
123 inline void sync_reset_on(
125 inline sc_event& terminated_event();
126 inline bool terminated()
const;
127 template<
typename EXCEPT>
128 inline void throw_it(
const EXCEPT& exception,
130 inline bool valid()
const;
133 inline std::string dump_state()
const;
137 {
return m_target_p ? m_target_p->dont_initialize() :
false; }
142 {
return m_target_p; }
504 template<
typename EXCEPT>
536 #if defined(_MSC_VER) && !defined(SC_WIN_DLL_WARN) 621 #endif // !defined(sc_spawn_h_INCLUDED)
sc_process_handle sc_get_last_created_process_handle()
sc_event & terminated_event()
Static sensitivity class for negative edge events.
static sc_process_handle last_created_process_handle()
void resume(sc_descendant_inclusion_info descendants=SC_NO_DESCENDANTS)
Abstract base class of all SystemC `simulation' objects.
bool is_unwinding() const
const std::vector< sc_object * > & get_child_objects() const
static std::vector< sc_object * > empty_object_vector
class sc_cthread_process * sc_cthread_handle
virtual void kill_process(sc_descendant_inclusion_info descendants=SC_NO_DESCENDANTS)=0
sc_object * get_parent_object() const
Static sensitivity class for positive edge events.
const char * name() const
void throw_it(const EXCEPT &exception, sc_descendant_inclusion_info descendants=SC_NO_DESCENDANTS)
void reset(sc_descendant_inclusion_info descendants=SC_NO_DESCENDANTS)
virtual bool terminated() const
sc_process_handle & operator=(sc_process_handle src)
const ::std::vector< sc_object * > & get_child_objects() const
static std::vector< sc_event * > empty_event_vector
sc_curr_proc_kind proc_kind() const
virtual void enable_process(sc_descendant_inclusion_info descendants=SC_NO_DESCENDANTS)=0
sc_process_b * m_target_p
Base class for all structural entities.
bool operator==(const sc_process_handle &left, const sc_process_handle &right)
void sync_reset_on(sc_descendant_inclusion_info descendants=SC_NO_DESCENDANTS)
#define SC_REPORT_WARNING(msg_type, msg)
Static sensitivity class for events.
sc_curr_proc_kind proc_kind() const
virtual void suspend_process(sc_descendant_inclusion_info descendants=SC_NO_DESCENDANTS)=0
void sync_reset_off(sc_descendant_inclusion_info descendants=SC_NO_DESCENDANTS)
bool dont_initialize() const
virtual void resume_process(sc_descendant_inclusion_info descendants=SC_NO_DESCENDANTS)=0
void swap(sc_process_handle &other)
void reset_process(reset_type rt, sc_descendant_inclusion_info descendants=SC_NO_DESCENDANTS)
void kill(sc_descendant_inclusion_info descendants=SC_NO_DESCENDANTS)
void suspend(sc_descendant_inclusion_info descendants=SC_NO_DESCENDANTS)
const char * name() const
virtual void disable_process(sc_descendant_inclusion_info descendants=SC_NO_DESCENDANTS)=0
std::string dump_state() const
sc_object * get_parent_object() const
bool is_unwinding() const
Base class of all hierarchical modules and channels.
bool operator<(const sc_process_handle &left, const sc_process_handle &right)
class sc_thread_process * sc_thread_handle
class sc_method_process * sc_method_handle
sc_object * get_process_object() const
std::string dump_state() const
virtual const std::vector< sc_event * > & get_child_events() const
static sc_event non_event
sc_event & reset_event() const
sc_event & terminated_event()
operand is not sc_logic object already exists internal maximum number of processes per module module construction not properly hierarchical name as shown may be incorrect due to previous errors incorrect use of sc_module_name set time resolution failed default time unit changed to time resolution immediate notification is not allowed during update phase or elaboration use dont_initialize() has no effect for SC_CTHREADs" ) SC_DEFINE_MESSAGE(SC_ID_WAIT_N_INVALID_
virtual void throw_user(const sc_throw_it_helper &helper, sc_descendant_inclusion_info descendants=SC_NO_DESCENDANTS)=0
class SC_API sc_simcontext
bool dont_initialize() const
void enable(sc_descendant_inclusion_info descendants=SC_NO_DESCENDANTS)
bool operator!=(const sc_process_handle &left, const sc_process_handle &right)
void disable(sc_descendant_inclusion_info descendants=SC_NO_DESCENDANTS)
sc_descendant_inclusion_info
const std::vector< sc_event * > & get_child_events() const