#include <sc_module_registry.h>
Public メソッド | |
void | insert (sc_module &) |
void | remove (sc_module &) |
int | size () const |
Private メソッド | |
sc_module_registry (sc_simcontext &simc_) | |
~sc_module_registry () | |
void | construction_done () |
void | elaboration_done () |
void | start_simulation () |
void | simulation_done () |
sc_module_registry () | |
sc_module_registry (const sc_module_registry &) | |
sc_module_registry & | operator= (const sc_module_registry &) |
Private 変数 | |
sc_simcontext * | m_simc |
std::vector< sc_module * > | m_module_vec |
フレンド | |
class | sc_simcontext |
sc_module_registry.h の 64 行で定義されています。
sc_core::sc_module_registry::sc_module_registry | ( | sc_simcontext & | simc_ | ) | [explicit, private] |
sc_core::sc_module_registry::~sc_module_registry | ( | ) | [private] |
sc_core::sc_module_registry::sc_module_registry | ( | ) | [private] |
sc_core::sc_module_registry::sc_module_registry | ( | const sc_module_registry & | ) | [private] |
void sc_core::sc_module_registry::insert | ( | sc_module & | module_ | ) |
sc_module_registry.cpp の 66 行で定義されています。
00067 { 00068 if( sc_is_running() ) { 00069 SC_REPORT_ERROR( SC_ID_INSERT_MODULE_, "simulation running" ); 00070 } 00071 00072 #ifdef DEBUG_SYSTEMC 00073 // check if module_ is already inserted 00074 for( int i = size() - 1; i >= 0; -- i ) { 00075 if( &module_ == m_module_vec[i] ) { 00076 SC_REPORT_ERROR( SC_ID_INSERT_MODULE_, "already inserted" ); 00077 } 00078 } 00079 #endif 00080 00081 // insert 00082 m_module_vec.push_back( &module_ ); 00083 }
void sc_core::sc_module_registry::remove | ( | sc_module & | module_ | ) |
sc_module_registry.cpp の 86 行で定義されています。
00087 { 00088 int i; 00089 for( i = 0; i < size(); ++ i ) { 00090 if( &module_ == m_module_vec[i] ) { 00091 break; 00092 } 00093 } 00094 if( i == size() ) { 00095 SC_REPORT_ERROR( SC_ID_REMOVE_MODULE_, 0 ); 00096 } 00097 00098 // remove 00099 m_module_vec[i] = m_module_vec[size() - 1]; 00100 m_module_vec.resize(m_module_vec.size()-1); 00101 }
int sc_core::sc_module_registry::size | ( | ) | const [inline] |
void sc_core::sc_module_registry::construction_done | ( | ) | [private] |
sc_module_registry.cpp の 119 行で定義されています。
00120 { 00121 for( int i = 0; i < size(); ++ i ) { 00122 m_module_vec[i]->construction_done(); 00123 } 00124 }
void sc_core::sc_module_registry::elaboration_done | ( | ) | [private] |
sc_module_registry.cpp の 129 行で定義されています。
00130 { 00131 bool error = false; 00132 for( int i = 0; i < size(); ++ i ) { 00133 m_module_vec[i]->elaboration_done( error ); 00134 } 00135 }
void sc_core::sc_module_registry::start_simulation | ( | ) | [private] |
sc_module_registry.cpp の 140 行で定義されています。
00141 { 00142 for( int i = 0; i < size(); ++ i ) { 00143 m_module_vec[i]->start_simulation(); 00144 } 00145 }
void sc_core::sc_module_registry::simulation_done | ( | ) | [private] |
sc_module_registry.cpp の 150 行で定義されています。
00151 { 00152 for( int i = 0; i < size(); ++ i ) { 00153 m_module_vec[i]->simulation_done(); 00154 } 00155 }
sc_module_registry& sc_core::sc_module_registry::operator= | ( | const sc_module_registry & | ) | [private] |
friend class sc_simcontext [friend] |
sc_module_registry.h の 66 行で定義されています。
sc_simcontext* sc_core::sc_module_registry::m_simc [private] |
sc_module_registry.h の 99 行で定義されています。
std::vector<sc_module*> sc_core::sc_module_registry::m_module_vec [private] |
sc_module_registry.h の 100 行で定義されています。