クラス sc_core::sc_event_list

#include <sc_event.h>

sc_core::sc_event_listに対する継承グラフ

Inheritance graph
[凡例]

すべてのメンバ一覧

Protected メソッド

void push_back (const sc_event &)
 sc_event_list (const sc_event &, bool and_list_, bool auto_delete_=false)
int size () const
bool and_list () const
void add_dynamic (sc_method_handle)
void add_dynamic (sc_thread_handle)
void remove_dynamic (sc_method_handle, const sc_event *)
void remove_dynamic (sc_thread_handle, const sc_event *)
void auto_delete ()

Private メソッド

 sc_event_list ()
 sc_event_list (const sc_event_list &)
sc_event_listoperator= (const sc_event_list &)

Private 変数

std::vector< const sc_event * > m_events
bool m_and_list
bool m_auto_delete

フレンド

class sc_process_b
class sc_method_process
class sc_thread_process


説明

sc_event.h319 行で定義されています。


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

sc_core::sc_event_list::sc_event_list ( const sc_event e,
bool  and_list_,
bool  auto_delete_ = false 
) [inline, protected]

sc_event.h361 行で定義されています。

00364 : m_and_list( and_list_ ),
00365   m_auto_delete( auto_delete_ )
00366 {
00367     m_events.push_back( &e );
00368 }

sc_core::sc_event_list::sc_event_list (  )  [private]

sc_core::sc_event_list::sc_event_list ( const sc_event_list  )  [private]


関数

void sc_core::sc_event_list::push_back ( const sc_event e  )  [protected]

sc_event.cpp392 行で定義されています。

00393 {
00394     // make sure e is not already in the list
00395     if ( m_events.size() != 0 ) {
00396       const sc_event** l_events = &m_events[0];
00397       for( int i = m_events.size() - 1; i >= 0; -- i ) {
00398           if( &e == l_events[i] ) {
00399               // event already in the list; ignore
00400               return;
00401           }
00402       }
00403     }
00404     m_events.push_back( &e );
00405 }

int sc_core::sc_event_list::size (  )  const [inline, protected]

sc_event.h373 行で定義されています。

00374 {
00375     return m_events.size();
00376 }

bool sc_core::sc_event_list::and_list (  )  const [inline, protected]

sc_event.h380 行で定義されています。

00381 {
00382     return m_and_list;
00383 }

void sc_core::sc_event_list::add_dynamic ( sc_method_handle  method_h  )  [protected]

sc_event.cpp409 行で定義されています。

00410 {
00411     if ( m_events.size() != 0 ) {
00412       const sc_event** l_events = &m_events[0];
00413       for( int i = m_events.size() - 1; i >= 0; -- i ) {
00414           l_events[i]->add_dynamic( method_h );
00415       }
00416   }
00417 }

void sc_core::sc_event_list::add_dynamic ( sc_thread_handle  thread_h  )  [protected]

sc_event.cpp420 行で定義されています。

00421 {
00422     if ( m_events.size() != 0 ) {
00423       const sc_event** l_events = &m_events[0];
00424       for( int i = m_events.size() - 1; i >= 0; -- i ) {
00425           l_events[i]->add_dynamic( thread_h );
00426       }
00427   }
00428 }

void sc_core::sc_event_list::remove_dynamic ( sc_method_handle  method_h,
const sc_event e_not 
) [protected]

sc_event.cpp431 行で定義されています。

00433 {
00434     if ( m_events.size() != 0 ) {
00435       const sc_event** l_events = &m_events[0];
00436       for( int i = m_events.size() - 1; i >= 0; -- i ) {
00437           const sc_event* e = l_events[i];
00438           if( e != e_not ) {
00439               e->remove_dynamic( method_h );
00440           }
00441       }
00442   }
00443 }

void sc_core::sc_event_list::remove_dynamic ( sc_thread_handle  thread_h,
const sc_event e_not 
) [protected]

sc_event.cpp446 行で定義されています。

00448 {
00449     if ( m_events.size() != 0 ) {
00450       const sc_event** l_events = &m_events[0];
00451       for( int i = m_events.size() - 1; i >= 0; -- i ) {
00452           const sc_event* e = l_events[i];
00453           if( e != e_not ) {
00454               e->remove_dynamic( thread_h );
00455           }
00456       }
00457   }
00458 }

void sc_core::sc_event_list::auto_delete (  )  [inline, protected]

sc_event.h388 行で定義されています。

00389 {
00390     if( m_auto_delete ) {
00391         delete this;
00392     }
00393 }

sc_event_list& sc_core::sc_event_list::operator= ( const sc_event_list  )  [private]


フレンドと関連する関数

friend class sc_process_b [friend]

sc_core::sc_event_or_list, と sc_core::sc_event_and_listで再定義されています。

sc_event.h321 行で定義されています。

friend class sc_method_process [friend]

sc_core::sc_event_or_list, と sc_core::sc_event_and_listで再定義されています。

sc_event.h322 行で定義されています。

friend class sc_thread_process [friend]

sc_core::sc_event_or_list, と sc_core::sc_event_and_listで再定義されています。

sc_event.h323 行で定義されています。


変数

std::vector<const sc_event*> sc_core::sc_event_list::m_events [private]

sc_event.h345 行で定義されています。

sc_event.h346 行で定義されています。

sc_event.h347 行で定義されています。


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

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