クラス テンプレート 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_typeoperator= (const data_type &a)
this_typeoperator= (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.h123 行で定義されています。


型定義

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

sc_signal_rv.h130 行で定義されています。

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

sc_signal_rv.h131 行で定義されています。

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

sc_signal_rv.h132 行で定義されています。


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

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

sc_signal_rv.h138 行で定義されています。

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.h142 行で定義されています。

00143         : base_type( name_ )
00144         {}

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

sc_signal_rv.h195 行で定義されています。

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.h153 行で定義されています。

00154         {}

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

sc_signal_rv.h208 行で定義されています。

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.h163 行で定義されています。

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.h166 行で定義されています。

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.h169 行で定義されています。

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.h241 行で定義されています。

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.h178 行で定義されています。

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

sc_signal_rv.h179 行で定義されています。


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

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