クラス sc_core::sc_event_queue

#include <sc_event_queue.h>

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

Inheritance graph
[凡例]

すべてのメンバ一覧

Public メソッド

 SC_HAS_PROCESS (sc_event_queue)
 sc_event_queue (sc_module_name name_=sc_gen_unique_name("event_queue"))
 ~sc_event_queue ()
virtual const char * kind () const
virtual void notify (double when, sc_time_unit base)
virtual void notify (const sc_time &when)
virtual void cancel_all ()
virtual const sc_eventdefault_event () const

Private メソッド

void fire_event ()

Private 変数

sc_ppq< sc_time * > m_ppq
sc_event m_e
sc_dt::uint64 m_delta
unsigned m_pending_delta


説明

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


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

sc_core::sc_event_queue::sc_event_queue ( sc_module_name  name_ = sc_gen_unique_name("event_queue")  ) 

sc_event_queue.cpp69 行で定義されています。

00070     : sc_module( name_ ),
00071       m_ppq( 128, sc_time_compare ),
00072       m_pending_delta(0)
00073 {
00074     m_delta=0;
00075     SC_METHOD( fire_event );
00076     sensitive << m_e;
00077     dont_initialize();
00078 }

sc_core::sc_event_queue::~sc_event_queue (  ) 

sc_event_queue.cpp80 行で定義されています。

00081 {
00082   while (m_ppq.size() > 0) {
00083     delete m_ppq.extract_top();
00084   }
00085 }


関数

sc_core::sc_event_queue::SC_HAS_PROCESS ( sc_event_queue   ) 

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

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

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

00104 { return "sc_event_queue"; }

void sc_core::sc_event_queue::notify ( double  when,
sc_time_unit  base 
) [inline, virtual]

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

sc_event_queue.h148 行で定義されています。

00149 {
00150         notify( sc_time(when,base) );
00151 }

void sc_core::sc_event_queue::notify ( const sc_time when  )  [virtual]

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

sc_event_queue.cpp95 行で定義されています。

00096 {
00097     m_delta = sc_delta_count();
00098     sc_time* t = new sc_time( when+sc_time_stamp() );
00099     if ( m_ppq.size()==0 || *t < *m_ppq.top() ) {
00100         m_e.notify( when );
00101     }
00102     m_ppq.insert( t );
00103 }

void sc_core::sc_event_queue::cancel_all (  )  [virtual]

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

sc_event_queue.cpp87 行で定義されています。

00088 {
00089     m_pending_delta = 0;
00090     while( m_ppq.size() > 0 )
00091         m_ppq.extract_top();
00092     m_e.cancel();
00093 }

const sc_event & sc_core::sc_event_queue::default_event (  )  const [inline, virtual]

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

sc_event_queue.h154 行で定義されています。

00155 { 
00156   return m_e; 
00157 }

void sc_core::sc_event_queue::fire_event (  )  [private]

sc_event_queue.cpp105 行で定義されています。

00106 {
00107     sc_time* t = m_ppq.extract_top();
00108     assert( *t==sc_time_stamp() );
00109     delete t;
00110 
00111     if ( m_ppq.size() > 0 ) {
00112         m_e.notify( *m_ppq.top() - sc_time_stamp() );
00113     }
00114 }


変数

sc_event_queue.h141 行で定義されています。

sc_event_queue.h142 行で定義されています。

sc_event_queue.h143 行で定義されています。

sc_event_queue.h144 行で定義されています。


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

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