43 #if ! defined( SC_DISABLE_VIRTUAL_BIND ) 44 # define SC_VIRTUAL_ virtual 88 virtual void before_end_of_elaboration();
91 virtual void end_of_elaboration();
94 virtual void start_of_simulation();
97 virtual void end_of_simulation();
100 void report_error(
const char*
id,
const char* add_msg = 0)
const;
103 const char* if_typename()
const 104 {
return get_interface_type().name(); }
106 void construction_done();
107 void elaboration_done();
108 void start_simulation();
109 void simulation_done();
113 this_type& operator = (
const this_type& );
148 return m_interface_p;
153 return m_interface_p;
156 const IF* operator -> ()
const {
157 if ( m_interface_p == 0 )
162 return m_interface_p;
166 if ( m_interface_p == 0 )
171 return m_interface_p;
176 if ( m_interface_p == 0 )
181 return *m_interface_p;
183 operator const IF&()
const 184 {
return *
const_cast<this_type*
>(
this); }
195 m_interface_p = &interface_;
198 void operator () ( IF& interface_ )
200 this->bind(interface_);
204 virtual const char*
kind()
const {
return "sc_export"; }
214 this_type& operator = (
const this_type& );
237 {
return static_cast<int>(m_export_vec.size()); }
248 bool construction_done();
251 void elaboration_done();
254 void start_simulation();
257 void simulation_done();
261 int m_construction_done;
262 std::vector<sc_export_base*> m_export_vec;
Registry for all exports.
Abstract base class of all SystemC `simulation' objects.
virtual sc_type_index get_interface_type() const
virtual sc_interface * get_interface()
SC_VIRTUAL_ void bind(IF &interface_)
Abstract base class of all interface classes.
virtual const char * kind() const
Abstract base class of all interface classes.
Wrapper around std::typeinfo to allow usage in containers.
Abstract base class of all SystemC `simulation' objects.
Report ids for the communication code.
sc_export(const char *name_)
virtual const sc_interface * get_interface() const
#define SC_REPORT_ERROR(msg_type, msg)
SC_NORETURN_ SC_API void sc_abort()