クラス sc_core::sc_module_registry

#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_registryoperator= (const sc_module_registry &)

Private 変数

sc_simcontextm_simc
std::vector< sc_module * > m_module_vec

フレンド

class sc_simcontext


説明

sc_module_registry.h64 行で定義されています。


コンストラクタとデストラクタ

sc_core::sc_module_registry::sc_module_registry ( sc_simcontext simc_  )  [explicit, private]

sc_module_registry.cpp106 行で定義されています。

00107 : m_simc( &simc_ )
00108 {}

sc_core::sc_module_registry::~sc_module_registry (  )  [private]

sc_module_registry.cpp113 行で定義されています。

00114 {}

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.cpp66 行で定義されています。

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.cpp86 行で定義されています。

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]

sc_module_registry.h73 行で定義されています。

00074         { return m_module_vec.size(); }

void sc_core::sc_module_registry::construction_done (  )  [private]

sc_module_registry.cpp119 行で定義されています。

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.cpp129 行で定義されています。

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.cpp140 行で定義されています。

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.cpp150 行で定義されています。

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.h66 行で定義されています。


変数

sc_module_registry.h99 行で定義されています。

sc_module_registry.h100 行で定義されています。


このクラスの説明は次のファイルから生成されました:

SystemCに対してFri Jun 6 20:12:00 2008に生成されました。  doxygen 1.5.6