クラス sc_core::sc_signal_resolved

#include <sc_signal_resolved.h>

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

Inheritance graph
[凡例]

すべてのメンバ一覧

Public 型

typedef sc_signal_resolved this_type
typedef sc_signal
< sc_dt::sc_logic
base_type
typedef sc_dt::sc_logic data_type

Public メソッド

 sc_signal_resolved ()
 sc_signal_resolved (const char *name_)
virtual ~sc_signal_resolved ()
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_resolved (const this_type &)


説明

sc_signal_resolved.h87 行で定義されています。


型定義

sc_signal_resolved.h94 行で定義されています。

sc_signal_resolved.h95 行で定義されています。

sc_signal_resolved.h96 行で定義されています。


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

sc_core::sc_signal_resolved::sc_signal_resolved (  )  [inline]

sc_signal_resolved.h102 行で定義されています。

00103         : base_type( sc_gen_unique_name( "signal_resolved" ) )
00104         {}

sc_core::sc_signal_resolved::sc_signal_resolved ( const char *  name_  )  [inline, explicit]

sc_signal_resolved.h106 行で定義されています。

00107         : base_type( name_ )
00108         {}

sc_core::sc_signal_resolved::~sc_signal_resolved (  )  [virtual]

sc_signal_resolved.cpp104 行で定義されています。

00105 {
00106     for( int i = m_val_vec.size() - 1; i >= 0; -- i ) {
00107         delete m_val_vec[i];
00108     }
00109 }

sc_core::sc_signal_resolved::sc_signal_resolved ( const this_type  )  [private]


関数

virtual void sc_core::sc_signal_resolved::register_port ( sc_port_base ,
const char *   
) [inline, virtual]

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

sc_signal_resolved.h117 行で定義されています。

00118         {}

void sc_core::sc_signal_resolved::write ( const data_type value_  )  [virtual]

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

sc_signal_resolved.cpp115 行で定義されています。

00116 {
00117     sc_process_b* cur_proc = sc_get_current_process_b();
00118 
00119     bool value_changed = false;
00120     bool found = false;
00121     
00122     for( int i = m_proc_vec.size() - 1; i >= 0; -- i ) {
00123         if( cur_proc == m_proc_vec[i] ) {
00124             if( value_ != *m_val_vec[i] ) {
00125                 *m_val_vec[i] = value_;
00126                 value_changed = true;
00127             }
00128             found = true;
00129             break;
00130         }
00131     }
00132     
00133     if( ! found ) {
00134         m_proc_vec.push_back( cur_proc );
00135         m_val_vec.push_back( new data_type( value_ ) );
00136         value_changed = true;
00137     }
00138     
00139     if( value_changed ) {
00140         request_update();
00141     }
00142 }

this_type& sc_core::sc_signal_resolved::operator= ( const data_type a  )  [inline]

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

sc_signal_resolved.h127 行で定義されています。

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

this_type& sc_core::sc_signal_resolved::operator= ( const this_type a  )  [inline]

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

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

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

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

sc_signal_resolved.h133 行で定義されています。

00134         { return "sc_signal_resolved"; }

void sc_core::sc_signal_resolved::update (  )  [protected, virtual]

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

sc_signal_resolved.cpp146 行で定義されています。

00147 {
00148     sc_logic_resolve::resolve( m_new_val, m_val_vec );
00149     base_type::update();
00150 }


変数

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

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


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

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