void sc_port_base::simulation_done() { sc_module* parent = static_cast<sc_module*>( get_parent_object() ); sc_object::hierarchy_scope scope( parent ); end_of_simulation(); }
void sc_port_base::construction_done() { sc_module* parent = static_cast<sc_module*>( get_parent_object() ); sc_object::hierarchy_scope scope( parent ); before_end_of_elaboration(); }
void sc_port_base::elaboration_done() { sc_assert( m_bind_info != 0 && m_bind_info->complete ); delete m_bind_info; m_bind_info = 0; sc_module* parent = static_cast<sc_module*>( get_parent_object() ); sc_object::hierarchy_scope scope( parent ); end_of_elaboration(); }
bool sc_vector_base::check_init( size_type n ) const { if ( !n ) return false; if( size() ) // already filled { std::stringstream str; str << name() << ", size=" << size() << ", requested size=" << n; SC_REPORT_ERROR( SC_ID_VECTOR_INIT_CALLED_TWICE_ , str.str().c_str() ); return false; } sc_simcontext* simc = simcontext(); sc_assert( simc == sc_get_curr_simcontext() ); sc_object* parent_p = simc->get_object_manager()->hierarchy_curr(); if ( !parent_p ) parent_p = static_cast<sc_object*>( sc_get_current_process_b() ); if( parent_p != get_parent_object() ) { std::stringstream str; str << name() << ": expected " << ( get_parent_object() ? get_parent_object()->name() : "<top-level>" ) << ", got " << ( parent_p ? parent_p->name() : "<top-level>" ); SC_REPORT_ERROR( SC_ID_VECTOR_INIT_INVALID_CONTEXT_ , str.str().c_str() ); return false; } return true; }
sc_object* sc_object::get_parent() const { static bool warn_sc_get_parent_deprecated=true; if ( warn_sc_get_parent_deprecated ) { warn_sc_get_parent_deprecated=false; SC_REPORT_INFO(sc_core::SC_ID_IEEE_1666_DEPRECATION_, "sc_object::get_parent() is deprecated, " "use get_parent_object() instead"); } return get_parent_object(); }