クラス sc_core::sc_cor_pkg_qt

#include <sc_cor_qt.h>

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

Inheritance graph
[凡例]

すべてのメンバ一覧

Public メソッド

 sc_cor_pkg_qt (sc_simcontext *simc)
virtual ~sc_cor_pkg_qt ()
virtual sc_corcreate (std::size_t stack_size, sc_cor_fn *fn, void *arg)
virtual void yield (sc_cor *next_cor)
virtual void abort (sc_cor *next_cor)
virtual sc_corget_main ()

Private メソッド

 sc_cor_pkg_qt ()
 sc_cor_pkg_qt (const sc_cor_pkg_qt &)
sc_cor_pkg_qtoperator= (const sc_cor_pkg_qt &)

Static Private 変数

static int instance_count = 0


説明

sc_cor_qt.h103 行で定義されています。


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

sc_core::sc_cor_pkg_qt::sc_cor_pkg_qt ( sc_simcontext simc  ) 

sc_cor_qt.cpp141 行で定義されています。

00142 : sc_cor_pkg( simc )
00143 {
00144     if( ++ instance_count == 1 ) {
00145         // initialize the current coroutine
00146         assert( curr_cor == 0 );
00147         curr_cor = &main_cor;
00148     }
00149 }

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

sc_cor_qt.cpp154 行で定義されています。

00155 {
00156     if( -- instance_count == 0 ) {
00157         // cleanup the current coroutine
00158         curr_cor = 0;
00159     }
00160 }

sc_core::sc_cor_pkg_qt::sc_cor_pkg_qt (  )  [private]

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


関数

sc_cor * sc_core::sc_cor_pkg_qt::create ( std::size_t  stack_size,
sc_cor_fn fn,
void *  arg 
) [virtual]

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

sc_cor_qt.cpp176 行で定義されています。

00177 {
00178     sc_cor_qt* cor = new sc_cor_qt();
00179     cor->m_pkg = this;
00180     cor->m_stack_size = stack_size;
00181     cor->m_stack = new char[cor->m_stack_size];
00182     void* sto = stack_align( cor->m_stack, QUICKTHREADS_STKALIGN, 
00183         &cor->m_stack_size );
00184     cor->m_sp = QUICKTHREADS_SP(sto, cor->m_stack_size - QUICKTHREADS_STKALIGN);
00185     cor->m_sp = QUICKTHREADS_ARGS( cor->m_sp, arg, cor, (qt_userf_t*) fn,
00186                          sc_cor_qt_wrapper );
00187     return cor;
00188 }

void sc_core::sc_cor_pkg_qt::yield ( sc_cor next_cor  )  [virtual]

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

sc_cor_qt.cpp202 行で定義されています。

00203 {
00204     sc_cor_qt* new_cor = SCAST<sc_cor_qt*>( next_cor );
00205     sc_cor_qt* old_cor = curr_cor;
00206     curr_cor = new_cor;
00207     QUICKTHREADS_BLOCK( sc_cor_qt_yieldhelp, old_cor, 0, new_cor->m_sp );
00208 }

void sc_core::sc_cor_pkg_qt::abort ( sc_cor next_cor  )  [virtual]

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

sc_cor_qt.cpp221 行で定義されています。

00222 {
00223     sc_cor_qt* new_cor = SCAST<sc_cor_qt*>( next_cor );
00224     sc_cor_qt* old_cor = curr_cor;
00225     curr_cor = new_cor;
00226     QUICKTHREADS_ABORT( sc_cor_qt_aborthelp, old_cor, 0, new_cor->m_sp );
00227 }

sc_cor * sc_core::sc_cor_pkg_qt::get_main (  )  [virtual]

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

sc_cor_qt.cpp233 行で定義されています。

00234 {
00235     return &main_cor;
00236 }

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


変数

int sc_core::sc_cor_pkg_qt::instance_count = 0 [static, private]

sc_cor_qt.h128 行で定義されています。


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

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