クラス テンプレート sc_core::sc_signal_rv< W >

#include <sc_signal_rv.h>

sc_core::sc_signal_rv< W >に対する継承グラフ

Inheritance graph
[凡例]

すべてのメンバ一覧

Public 型

typedef sc_signal_rv< W > this_type
typedef sc_signal
< sc_dt::sc_lv< W > > 
base_type
typedef sc_dt::sc_lv< W > data_type

Public メソッド

 sc_signal_rv ()
 sc_signal_rv (const char *name_)
virtual ~sc_signal_rv ()
virtual void register_port (sc_port_base &, const char *)
virtual void write (const data_type &)
this_type & operator= (const data_type &a)
this_type & operator= (const this_type &a)
virtual const char * kind () const

Protected メソッド

virtual void update ()

Protected 変数

std::vector< sc_process_b * > m_proc_vec
std::vector< data_type * > m_val_vec

Private メソッド

 sc_signal_rv (const this_type &)


説明

template<int W>
class sc_core::sc_signal_rv< W >

sc_signal_rv.h の 123 行で定義されています。


型定義

template<int W>
typedef sc_signal_rv<W> sc_core::sc_signal_rv< W >::this_type

sc_signal_rv.h の 130 行で定義されています。

template<int W>
typedef sc_signal<sc_dt::sc_lv<W> > sc_core::sc_signal_rv< W >::base_type

sc_signal_rv.h の 131 行で定義されています。

template<int W>
typedef sc_dt::sc_lv<W> sc_core::sc_signal_rv< W >::data_type

sc_signal_rv.h の 132 行で定義されています。


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

template<int W>
sc_core::sc_signal_rv< W >::sc_signal_rv (  )  [inline]

sc_signal_rv.h の 138 行で定義されています。

00139         : base_type( sc_gen_unique_name( "signal_rv" ) )
00140         {}

template<int W>
sc_core::sc_signal_rv< W >::sc_signal_rv ( const char *  name_  )  [inline, explicit]

sc_signal_rv.h の 142 行で定義されています。

00143         : base_type( name_ )
00144         {}

template<int W>
sc_core::sc_signal_rv< W >::~sc_signal_rv (  )  [inline, virtual]

sc_signal_rv.h の 195 行で定義されています。

00196 {
00197     for( int i = m_val_vec.size() - 1; i >= 0; -- i ) {
00198         delete m_val_vec[i];
00199     }
00200 }

template<int W>
sc_core::sc_signal_rv< W >::sc_signal_rv ( const this_type &   )  [private]


関数

template<int W>
virtual void sc_core::sc_signal_rv< W >::register_port ( sc_port_base &  ,
const char *   
) [inline, virtual]

sc_core::sc_signal< sc_dt::sc_lv< W > >を再定義しています。

sc_signal_rv.h の 153 行で定義されています。

00154         {}

template<int W>
void sc_core::sc_signal_rv< W >::write ( const data_type &  value_  )  [inline, virtual]

sc_signal_rv.h の 208 行で定義されています。

00209 {
00210     sc_process_b* cur_proc = sc_get_current_process_b();
00211 
00212     bool value_changed = false;
00213     bool found = false;
00214     
00215     for( int i = m_proc_vec.size() - 1; i >= 0; -- i ) {
00216         if( cur_proc == m_proc_vec[i] ) {
00217             if( value_ != *m_val_vec[i] ) {
00218                 *m_val_vec[i] = value_;
00219                 value_changed = true;
00220             }
00221             found = true;
00222             break;
00223         }
00224     }
00225     
00226     if( ! found ) {
00227         m_proc_vec.push_back( cur_proc );
00228         m_val_vec.push_back( new data_type( value_ ) );
00229         value_changed = true;
00230     }
00231     
00232     if( value_changed ) {
00233         this->request_update();
00234     }
00235 }

template<int W>
this_type& sc_core::sc_signal_rv< W >::operator= ( const data_type &  a  )  [inline]

sc_signal_rv.h の 163 行で定義されています。

00164         { write( a ); return *this; }

template<int W>
this_type& sc_core::sc_signal_rv< W >::operator= ( const this_type &  a  )  [inline]

sc_signal_rv.h の 166 行で定義されています。

00167         { write( a.read() ); return *this; }

template<int W>
virtual const char* sc_core::sc_signal_rv< W >::kind (  )  const [inline, virtual]

sc_core::sc_signal< sc_dt::sc_lv< W > >を再定義しています。

sc_signal_rv.h の 169 行で定義されています。

00170         { return "sc_signal_rv"; }

template<int W>
void sc_core::sc_signal_rv< W >::update (  )  [inline, protected, virtual]

sc_core::sc_signal< sc_dt::sc_lv< W > >を再定義しています。

sc_signal_rv.h の 241 行で定義されています。

00242 {
00243     sc_lv_resolve<W>::resolve( this->m_new_val, m_val_vec );
00244     base_type::update();
00245 }


変数

template<int W>
std::vector<sc_process_b*> sc_core::sc_signal_rv< W >::m_proc_vec [protected]

sc_signal_rv.h の 178 行で定義されています。

template<int W>
std::vector<data_type*> sc_core::sc_signal_rv< W >::m_val_vec [protected]

sc_signal_rv.h の 179 行で定義されています。


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

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