クラス sc_core::sc_join

#include <sc_join.h>

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

Inheritance graph
[凡例]

すべてのメンバ一覧

Public メソッド

 sc_join ()
virtual ~sc_join ()
void add_process (sc_process_handle process_h)
int process_count ()
virtual void signal (sc_thread_handle thread_p, int type)
void wait ()
void wait_clocked ()

Protected メソッド

void add_process (sc_process_b *process_p)

Protected 変数

sc_event m_join_event
int m_threads_n

フレンド

class sc_process_b
class sc_process_handle


説明

sc_join.h63 行で定義されています。


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

sc_core::sc_join::sc_join (  )  [inline]

sc_join.h83 行で定義されています。

00083 : m_threads_n(0) { }

sc_core::sc_join::~sc_join (  )  [inline, virtual]

sc_join.h85 行で定義されています。

00085 {}


関数

void sc_core::sc_join::add_process ( sc_process_handle  process_h  ) 

sc_join.cpp82 行で定義されています。

00083 {
00084         sc_thread_handle thread_p; // Thread within process_h.
00085 
00086         thread_p = process_h.operator sc_thread_handle();
00087         if ( thread_p )
00088         {
00089                 m_threads_n++;
00090                 thread_p->add_monitor( this );
00091         }
00092         else
00093         {
00094                 SC_REPORT_ERROR( SC_ID_JOIN_ON_METHOD_HANDLE_, 0 ); 
00095         }
00096 }

int sc_core::sc_join::process_count (  )  [inline]

sc_join.h88 行で定義されています。

00088 { return m_threads_n; }

void sc_core::sc_join::signal ( sc_thread_handle  thread_p,
int  type 
) [virtual]

sc_core::sc_process_monitorを再定義しています。

sc_join.cpp109 行で定義されています。

00110 {
00111     switch ( type )
00112         {
00113           case sc_process_monitor::spm_exit:
00114                 thread_p->remove_monitor(this);
00115                 if ( --m_threads_n == 0 ) m_join_event.notify();
00116                 break;
00117         }
00118 }

void sc_core::sc_join::wait (  )  [inline]

sc_join.h92 行で定義されています。

void sc_core::sc_join::wait_clocked (  )  [inline]

sc_join.h96 行で定義されています。

00097 {
00098     do { ::sc_core::wait(); } while (m_threads_n != 0);
00099 }

void sc_core::sc_join::add_process ( sc_process_b process_p  )  [protected]

sc_join.cpp65 行で定義されています。

00066 {
00067         sc_thread_handle handle = DCAST<sc_thread_handle>(process_p);
00068         assert( handle != 0 );
00069         m_threads_n++;
00070         handle->add_monitor( this );
00071 }


フレンドと関連する関数

friend class sc_process_b [friend]

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

friend class sc_process_handle [friend]

sc_join.h65 行で定義されています。


変数

sc_join.h79 行で定義されています。

sc_join.h80 行で定義されています。


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

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