クラス sc_core::sc_mutex

#include <sc_mutex.h>

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

Inheritance graph
[凡例]

すべてのメンバ一覧

Public メソッド

 sc_mutex ()
 sc_mutex (const char *name_)
virtual ~sc_mutex ()
virtual int lock ()
virtual int trylock ()
virtual int unlock ()
virtual const char * kind () const

Protected メソッド

bool in_use () const

Protected 変数

sc_process_bm_owner
sc_event m_free

Private メソッド

 sc_mutex (const sc_mutex &)
sc_mutexoperator= (const sc_mutex &)


説明

sc_mutex.h68 行で定義されています。


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

sc_core::sc_mutex::sc_mutex (  ) 

sc_mutex.cpp62 行で定義されています。

00063 : sc_prim_channel( sc_gen_unique_name( "mutex" ) ),
00064   m_owner( 0 )
00065 {}

sc_core::sc_mutex::sc_mutex ( const char *  name_  )  [explicit]

sc_mutex.cpp67 行で定義されています。

00068 : sc_prim_channel( name_ ),
00069   m_owner( 0 )
00070 {}

sc_core::sc_mutex::~sc_mutex (  )  [virtual]

sc_mutex.cpp75 行で定義されています。

00076 {}

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


関数

int sc_core::sc_mutex::lock (  )  [virtual]

sc_core::sc_mutex_ifを実装しています。

sc_mutex.cpp83 行で定義されています。

00084 {
00085     if (m_owner == sc_get_current_process_b()) return 0;
00086     while( in_use() ) {
00087         wait( m_free );
00088     }
00089     m_owner = sc_get_current_process_b();
00090     return 0;
00091 }

int sc_core::sc_mutex::trylock (  )  [virtual]

sc_core::sc_mutex_ifを実装しています。

sc_mutex.cpp97 行で定義されています。

00098 {
00099     if (m_owner == sc_get_current_process_b()) return 0;
00100     if( in_use() ) {
00101         return -1;
00102     }
00103     m_owner = sc_get_current_process_b();
00104     return 0;
00105 }

int sc_core::sc_mutex::unlock (  )  [virtual]

sc_core::sc_mutex_ifを実装しています。

sc_mutex.cpp111 行で定義されています。

00112 {
00113     if( m_owner != sc_get_current_process_b() ) {
00114         return -1;
00115     }
00116     m_owner = 0;
00117     m_free.notify();
00118     return 0;
00119 }

virtual const char* sc_core::sc_mutex::kind (  )  const [inline, virtual]

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

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

00093         { return "sc_mutex"; }

bool sc_core::sc_mutex::in_use (  )  const [inline, protected]

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

00100         { return ( m_owner != 0 ); }

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


変数

sc_mutex.h104 行で定義されています。

sc_mutex.h105 行で定義されています。


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

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