#include <sc_event_queue.h>
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_event & | default_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.h の 92 行で定義されています。
sc_core::sc_event_queue::sc_event_queue | ( | sc_module_name | name_ = sc_gen_unique_name("event_queue") |
) |
sc_event_queue.cpp の 69 行で定義されています。
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_core::sc_event_queue::SC_HAS_PROCESS | ( | sc_event_queue | ) |
virtual const char* sc_core::sc_event_queue::kind | ( | ) | const [inline, virtual] |
void sc_core::sc_event_queue::notify | ( | double | when, | |
sc_time_unit | base | |||
) | [inline, virtual] |
sc_core::sc_event_queue_ifを実装しています。
sc_event_queue.h の 148 行で定義されています。
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.cpp の 95 行で定義されています。
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.cpp の 87 行で定義されています。
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.h の 154 行で定義されています。
00155 { 00156 return m_e; 00157 }
void sc_core::sc_event_queue::fire_event | ( | ) | [private] |
sc_event_queue.cpp の 105 行で定義されています。
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_ppq<sc_time*> sc_core::sc_event_queue::m_ppq [private] |
sc_event_queue.h の 141 行で定義されています。
sc_event sc_core::sc_event_queue::m_e [private] |
sc_event_queue.h の 142 行で定義されています。
sc_event_queue.h の 143 行で定義されています。
unsigned sc_core::sc_event_queue::m_pending_delta [private] |
sc_event_queue.h の 144 行で定義されています。