クラス テンプレート sc_dt::sc_bitref< X >

#include <sc_bit_proxies.h>

sc_dt::sc_bitref< X >に対する継承グラフ

Inheritance graph
[凡例]

すべてのメンバ一覧

Public メソッド

 sc_bitref (X &obj_, int index_)
 sc_bitref (const sc_bitref< X > &a)
sc_bitref< X > * clone () const
sc_bitref< X > & operator= (const sc_bitref_r< X > &a)
sc_bitref< X > & operator= (const sc_bitref< X > &a)
sc_bitref< X > & operator= (const sc_logic &a)
sc_bitref< X > & operator= (sc_logic_value_t v)
sc_bitref< X > & operator= (bool a)
sc_bitref< X > & operator= (char a)
sc_bitref< X > & operator= (int a)
sc_bitref< X > & operator= (const sc_bit &a)
sc_bitref< X > & operator &= (const sc_bitref_r< X > &a)
sc_bitref< X > & operator &= (const sc_logic &a)
sc_bitref< X > & operator &= (sc_logic_value_t v)
sc_bitref< X > & operator &= (bool a)
sc_bitref< X > & operator &= (char a)
sc_bitref< X > & operator &= (int a)
sc_bitref< X > & operator|= (const sc_bitref_r< X > &a)
sc_bitref< X > & operator|= (const sc_logic &a)
sc_bitref< X > & operator|= (sc_logic_value_t v)
sc_bitref< X > & operator|= (bool a)
sc_bitref< X > & operator|= (char a)
sc_bitref< X > & operator|= (int a)
sc_bitref< X > & operator^= (const sc_bitref_r< X > &a)
sc_bitref< X > & operator^= (const sc_logic &a)
sc_bitref< X > & operator^= (sc_logic_value_t v)
sc_bitref< X > & operator^= (bool a)
sc_bitref< X > & operator^= (char a)
sc_bitref< X > & operator^= (int a)
sc_bitref< X > & b_not ()
void set_bit (int n, sc_logic_value_t value)
void set_word (int i, sc_digit w)
void set_cword (int i, sc_digit w)
void clean_tail ()
void scan (::std::istream &is=::std::cin)

Private メソッド

 sc_bitref ()

フレンド

class sc_bv_base
class sc_lv_base


説明

template<class X>
class sc_dt::sc_bitref< X >

sc_bit_proxies.h472 行で定義されています。


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

template<class X>
sc_dt::sc_bitref< X >::sc_bitref ( X &  obj_,
int  index_ 
) [inline]

sc_bit_proxies.h482 行で定義されています。

00483         : sc_bitref_r<X>( obj_, index_ )
00484         {}

template<class X>
sc_dt::sc_bitref< X >::sc_bitref ( const sc_bitref< X > &  a  )  [inline]

sc_bit_proxies.h489 行で定義されています。

00490         : sc_bitref_r<X>( a )
00491         {}

template<class X>
sc_dt::sc_bitref< X >::sc_bitref (  )  [private]


関数

template<class X>
sc_bitref<X>* sc_dt::sc_bitref< X >::clone (  )  const [inline]

sc_dt::sc_bitref_r< X >を再定義しています。

sc_bit_proxies.h496 行で定義されています。

00497         { return new sc_bitref<X>( *this ); }

template<class X>
sc_bitref< X > & sc_dt::sc_bitref< X >::operator= ( const sc_bitref_r< X > &  a  )  [inline]

sc_dt::sc_bitref_r< X >を再定義しています。

sc_bit_proxies.h2249 行で定義されています。

02250 {
02251     this->m_obj.set_bit( this->m_index, a.value() );
02252         return *this;
02253 }

template<class X>
sc_bitref< X > & sc_dt::sc_bitref< X >::operator= ( const sc_bitref< X > &  a  )  [inline]

sc_bit_proxies.h2258 行で定義されています。

02259 {
02260     if( &a != this ) {
02261         this->m_obj.set_bit( this->m_index, a.value() );
02262     }
02263     return *this;
02264 }

template<class X>
sc_bitref<X>& sc_dt::sc_bitref< X >::operator= ( const sc_logic a  )  [inline]

sc_bit_proxies.h505 行で定義されています。

00506         { this->m_obj.set_bit( this->m_index, a.value() ); return *this; }

template<class X>
sc_bitref<X>& sc_dt::sc_bitref< X >::operator= ( sc_logic_value_t  v  )  [inline]

sc_bit_proxies.h508 行で定義されています。

00509         { *this = sc_logic( v ); return *this; }

template<class X>
sc_bitref<X>& sc_dt::sc_bitref< X >::operator= ( bool  a  )  [inline]

sc_bit_proxies.h511 行で定義されています。

00512         { *this = sc_logic( a ); return *this; }

template<class X>
sc_bitref<X>& sc_dt::sc_bitref< X >::operator= ( char  a  )  [inline]

sc_bit_proxies.h514 行で定義されています。

00515         { *this = sc_logic( a ); return *this; }

template<class X>
sc_bitref<X>& sc_dt::sc_bitref< X >::operator= ( int  a  )  [inline]

sc_bit_proxies.h517 行で定義されています。

00518         { *this = sc_logic( a ); return *this; }

template<class X>
sc_bitref<X>& sc_dt::sc_bitref< X >::operator= ( const sc_bit a  )  [inline]

sc_bit_proxies.h520 行で定義されています。

00521         { *this = sc_logic( a ); return *this; }

template<class X>
sc_bitref< X > & sc_dt::sc_bitref< X >::operator &= ( const sc_bitref_r< X > &  a  )  [inline]

sc_bit_proxies.h2272 行で定義されています。

02273 {
02274     if( &a != this ) {
02275         this->m_obj.set_bit( this->m_index,
02276                              sc_logic::and_table[this->value()][a.value()] );
02277     }
02278     return *this;
02279 }

template<class X>
sc_bitref< X > & sc_dt::sc_bitref< X >::operator &= ( const sc_logic a  )  [inline]

sc_bit_proxies.h2284 行で定義されています。

02285 {
02286     this->m_obj.set_bit( this->m_index,
02287                          sc_logic::and_table[this->value()][a.value()] );
02288     return *this;
02289 }

template<class X>
sc_bitref<X>& sc_dt::sc_bitref< X >::operator &= ( sc_logic_value_t  v  )  [inline]

sc_bit_proxies.h529 行で定義されています。

00530         { *this &= sc_logic( v ); return *this; }

template<class X>
sc_bitref<X>& sc_dt::sc_bitref< X >::operator &= ( bool  a  )  [inline]

sc_bit_proxies.h532 行で定義されています。

00533         { *this &= sc_logic( a ); return *this; }

template<class X>
sc_bitref<X>& sc_dt::sc_bitref< X >::operator &= ( char  a  )  [inline]

sc_bit_proxies.h535 行で定義されています。

00536         { *this &= sc_logic( a ); return *this; }

template<class X>
sc_bitref<X>& sc_dt::sc_bitref< X >::operator &= ( int  a  )  [inline]

sc_bit_proxies.h538 行で定義されています。

00539         { *this &= sc_logic( a ); return *this; }

template<class X>
sc_bitref< X > & sc_dt::sc_bitref< X >::operator|= ( const sc_bitref_r< X > &  a  )  [inline]

sc_bit_proxies.h2295 行で定義されています。

02296 {
02297     if( &a != this ) {
02298         this->m_obj.set_bit( this->m_index,
02299                              sc_logic::or_table[this->value()][a.value()] );
02300     }
02301     return *this;
02302 }

template<class X>
sc_bitref< X > & sc_dt::sc_bitref< X >::operator|= ( const sc_logic a  )  [inline]

sc_bit_proxies.h2307 行で定義されています。

02308 {
02309     this->m_obj.set_bit( this->m_index,
02310                          sc_logic::or_table[this->value()][a.value()] );
02311     return *this;
02312 }

template<class X>
sc_bitref<X>& sc_dt::sc_bitref< X >::operator|= ( sc_logic_value_t  v  )  [inline]

sc_bit_proxies.h545 行で定義されています。

00546         { *this |= sc_logic( v ); return *this; }

template<class X>
sc_bitref<X>& sc_dt::sc_bitref< X >::operator|= ( bool  a  )  [inline]

sc_bit_proxies.h548 行で定義されています。

00549         { *this |= sc_logic( a ); return *this; }

template<class X>
sc_bitref<X>& sc_dt::sc_bitref< X >::operator|= ( char  a  )  [inline]

sc_bit_proxies.h551 行で定義されています。

00552         { *this |= sc_logic( a ); return *this; }

template<class X>
sc_bitref<X>& sc_dt::sc_bitref< X >::operator|= ( int  a  )  [inline]

sc_bit_proxies.h554 行で定義されています。

00555         { *this |= sc_logic( a ); return *this; }

template<class X>
sc_bitref< X > & sc_dt::sc_bitref< X >::operator^= ( const sc_bitref_r< X > &  a  )  [inline]

sc_bit_proxies.h2318 行で定義されています。

02319 {
02320     if( &a != this ) {
02321         this->m_obj.set_bit( this->m_index,
02322                              sc_logic::xor_table[this->value()][a.value()] );
02323     }
02324     return *this;
02325 }

template<class X>
sc_bitref< X > & sc_dt::sc_bitref< X >::operator^= ( const sc_logic a  )  [inline]

sc_bit_proxies.h2330 行で定義されています。

02331 {
02332     this->m_obj.set_bit( this->m_index,
02333                          sc_logic::xor_table[this->value()][a.value()] );
02334     return *this;
02335 }

template<class X>
sc_bitref<X>& sc_dt::sc_bitref< X >::operator^= ( sc_logic_value_t  v  )  [inline]

sc_bit_proxies.h561 行で定義されています。

00562         { *this ^= sc_logic( v ); return *this; }

template<class X>
sc_bitref<X>& sc_dt::sc_bitref< X >::operator^= ( bool  a  )  [inline]

sc_bit_proxies.h564 行で定義されています。

00565         { *this ^= sc_logic( a ); return *this; }

template<class X>
sc_bitref<X>& sc_dt::sc_bitref< X >::operator^= ( char  a  )  [inline]

sc_bit_proxies.h567 行で定義されています。

00568         { *this ^= sc_logic( a ); return *this; }

template<class X>
sc_bitref<X>& sc_dt::sc_bitref< X >::operator^= ( int  a  )  [inline]

sc_bit_proxies.h570 行で定義されています。

00571         { *this ^= sc_logic( a ); return *this; }

template<class X>
sc_bitref< X > & sc_dt::sc_bitref< X >::b_not (  )  [inline]

sc_bit_proxies.h2345 行で定義されています。

02346 {
02347     this->m_obj.set_bit( this->m_index,
02348                          sc_logic::not_table[this->value()] );
02349     return *this;
02350 }

template<class X>
void sc_dt::sc_bitref< X >::set_bit ( int  n,
sc_logic_value_t  value 
) [inline]

sc_bit_proxies.h2358 行で定義されています。

02359 {
02360     if( n == 0 ) {
02361         this->m_obj.set_bit( this->m_index, value );
02362     } else {
02363         SC_REPORT_ERROR( sc_core::SC_ID_OUT_OF_BOUNDS_, 0 );
02364     }
02365 }

template<class X>
void sc_dt::sc_bitref< X >::set_word ( int  i,
sc_digit  w 
) [inline]

sc_bit_proxies.h2370 行で定義されています。

02371 {
02372     unsigned int bi = this->m_index % (8*sizeof(sc_digit));
02373     sc_digit     temp;
02374     unsigned int wi = this->m_index / (8*sizeof(sc_digit));
02375     if( n == 0 ) {
02376         temp = this->m_obj.get_word(wi);
02377         temp = (temp & ~(1 << bi)) | ((w&1) << bi);
02378         this->m_obj.set_word(wi, temp);
02379     } else {
02380         SC_REPORT_ERROR( sc_core::SC_ID_OUT_OF_BOUNDS_, 0 );
02381     }
02382 
02383 }

template<class X>
void sc_dt::sc_bitref< X >::set_cword ( int  i,
sc_digit  w 
) [inline]

sc_bit_proxies.h2388 行で定義されています。

02389 {
02390     unsigned int bi = this->m_index % (8*sizeof(sc_digit));
02391     sc_digit     temp;
02392     unsigned int wi = this->m_index / (8*sizeof(sc_digit));
02393     if( n == 0 ) {
02394         temp = this->m_obj.get_cword(wi);
02395         temp = (temp & ~(1 << bi)) | ((w&1) << bi);
02396         this->m_obj.set_cword(wi, temp);
02397     } else {
02398         SC_REPORT_ERROR( sc_core::SC_ID_OUT_OF_BOUNDS_, 0 );
02399     }
02400 }

template<class X>
void sc_dt::sc_bitref< X >::clean_tail (  )  [inline]

sc_bit_proxies.h588 行で定義されています。

00589         { this->m_obj.clean_tail(); }

template<class X>
void sc_dt::sc_bitref< X >::scan ( ::std::istream &  is = ::std::cin  )  [inline]

sc_bit_proxies.h2407 行で定義されています。

02408 {
02409     char c;
02410     is >> c;
02411     *this = c;
02412 }


フレンドと関連する関数

template<class X>
friend class sc_bv_base [friend]

sc_dt::sc_bitref_r< X >を再定義しています。

sc_bit_proxies.h475 行で定義されています。

template<class X>
friend class sc_lv_base [friend]

sc_dt::sc_bitref_r< X >を再定義しています。

sc_bit_proxies.h476 行で定義されています。


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

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