クラス テンプレート sc_core::sc_in< T >

#include <sc_signal_ports.h>

sc_core::sc_in< T >に対する継承グラフ

Inheritance graph
[凡例]

すべてのメンバ一覧

Public 型

typedef T data_type
typedef sc_signal_in_if
< data_type
if_type
typedef sc_port< if_type,
1, SC_ONE_OR_MORE_BOUND > 
base_type
typedef sc_in< data_typethis_type
typedef if_type in_if_type
typedef base_type in_port_type
typedef sc_signal_inout_if
< data_type
inout_if_type
typedef sc_port< inout_if_type,
1, SC_ONE_OR_MORE_BOUND > 
inout_port_type

Public メソッド

 sc_in ()
 sc_in (const char *name_)
 sc_in (const in_if_type &interface_)
 sc_in (const char *name_, const in_if_type &interface_)
 sc_in (in_port_type &parent_)
 sc_in (const char *name_, in_port_type &parent_)
 sc_in (inout_port_type &parent_)
 sc_in (const char *name_, inout_port_type &parent_)
 sc_in (this_type &parent_)
 sc_in (const char *name_, this_type &parent_)
virtual ~sc_in ()
void bind (const in_if_type &interface_)
void operator() (const in_if_type &interface_)
void bind (in_port_type &parent_)
void operator() (in_port_type &parent_)
void bind (inout_port_type &parent_)
void operator() (inout_port_type &parent_)
const sc_eventdefault_event () const
const sc_eventvalue_changed_event () const
const data_typeread () const
 operator const data_type & () const
bool event () const
sc_event_findervalue_changed () const
virtual void end_of_elaboration ()
virtual const char * kind () const
void add_trace (sc_trace_file *, const std::string &) const
void add_trace_internal (sc_trace_file *, const std::string &) const

Protected メソッド

void remove_traces () const
virtual int vbind (sc_interface &)
virtual int vbind (sc_port_base &)

Protected 変数

sc_trace_params_vecm_traces

Private メソッド

 sc_in (const this_type &)
this_typeoperator= (const this_type &)

Private 変数

sc_event_finderm_change_finder_p


説明

template<class T>
class sc_core::sc_in< T >

sc_signal_ports.h69 行で定義されています。


型定義

template<class T>
typedef T sc_core::sc_in< T >::data_type

sc_core::sc_in_rv< W >で再定義されています。

sc_signal_ports.h76 行で定義されています。

template<class T>
typedef sc_signal_in_if<data_type> sc_core::sc_in< T >::if_type

sc_signal_ports.h78 行で定義されています。

template<class T>
typedef sc_port<if_type,1,SC_ONE_OR_MORE_BOUND> sc_core::sc_in< T >::base_type

sc_core::sc_port< IF, N, P >を再定義しています。

sc_core::sc_in_rv< W >で再定義されています。

sc_signal_ports.h79 行で定義されています。

template<class T>
typedef sc_in<data_type> sc_core::sc_in< T >::this_type

sc_core::sc_port< IF, N, P >を再定義しています。

sc_core::sc_in_rv< W >で再定義されています。

sc_signal_ports.h80 行で定義されています。

template<class T>
typedef if_type sc_core::sc_in< T >::in_if_type

sc_core::sc_in_rv< W >で再定義されています。

sc_signal_ports.h82 行で定義されています。

template<class T>
typedef base_type sc_core::sc_in< T >::in_port_type

sc_core::sc_in_rv< W >で再定義されています。

sc_signal_ports.h83 行で定義されています。

template<class T>
typedef sc_signal_inout_if<data_type> sc_core::sc_in< T >::inout_if_type

sc_signal_ports.h84 行で定義されています。

template<class T>
typedef sc_port<inout_if_type,1,SC_ONE_OR_MORE_BOUND> sc_core::sc_in< T >::inout_port_type

sc_core::sc_in_rv< W >で再定義されています。

sc_signal_ports.h85 行で定義されています。


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

template<class T>
sc_core::sc_in< T >::sc_in (  )  [inline]

sc_signal_ports.h91 行で定義されています。

00092         : base_type(), m_traces( 0 ),
00093           m_change_finder_p(0)
00094         {}

template<class T>
sc_core::sc_in< T >::sc_in ( const char *  name_  )  [inline, explicit]

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

00097         : base_type( name_ ), m_traces( 0 ),
00098           m_change_finder_p(0)
00099         {}

template<class T>
sc_core::sc_in< T >::sc_in ( const in_if_type interface_  )  [inline, explicit]

sc_signal_ports.h101 行で定義されています。

00102         : base_type( CCAST<in_if_type&>( interface_ ) ), m_traces( 0 ),
00103           m_change_finder_p(0)
00104         {}

template<class T>
sc_core::sc_in< T >::sc_in ( const char *  name_,
const in_if_type interface_ 
) [inline]

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

00107         : base_type( name_, CCAST<in_if_type&>( interface_ ) ), m_traces( 0 ),
00108           m_change_finder_p(0)
00109         {}

template<class T>
sc_core::sc_in< T >::sc_in ( in_port_type parent_  )  [inline, explicit]

sc_signal_ports.h111 行で定義されています。

00112         : base_type( parent_ ), m_traces( 0 ),
00113           m_change_finder_p(0)
00114         {}

template<class T>
sc_core::sc_in< T >::sc_in ( const char *  name_,
in_port_type parent_ 
) [inline]

sc_signal_ports.h116 行で定義されています。

00117         : base_type( name_, parent_ ), m_traces( 0 ),
00118           m_change_finder_p(0)
00119         {}

template<class T>
sc_core::sc_in< T >::sc_in ( inout_port_type parent_  )  [inline, explicit]

sc_signal_ports.h121 行で定義されています。

00122         : base_type(), m_traces( 0 ),
00123           m_change_finder_p(0)
00124         { sc_port_base::bind( parent_ ); }

template<class T>
sc_core::sc_in< T >::sc_in ( const char *  name_,
inout_port_type parent_ 
) [inline]

sc_signal_ports.h126 行で定義されています。

00127         : base_type( name_ ), m_traces( 0 ),
00128           m_change_finder_p(0)
00129         { sc_port_base::bind( parent_ ); }

template<class T>
sc_core::sc_in< T >::sc_in ( this_type parent_  )  [inline]

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

00132         : base_type( parent_ ), m_traces( 0 ),
00133           m_change_finder_p(0)
00134         {}

template<class T>
sc_core::sc_in< T >::sc_in ( const char *  name_,
this_type parent_ 
) [inline]

sc_signal_ports.h136 行で定義されています。

00137         : base_type( name_, parent_ ), m_traces( 0 ),
00138           m_change_finder_p(0)
00139         {}

template<class T>
virtual sc_core::sc_in< T >::~sc_in (  )  [inline, virtual]

sc_signal_ports.h144 行で定義されています。

00145         {
00146             remove_traces();
00147             if ( m_change_finder_p ) delete m_change_finder_p;
00148         }

template<class T>
sc_core::sc_in< T >::sc_in ( const this_type  )  [private]


関数

template<class T>
void sc_core::sc_in< T >::bind ( const in_if_type interface_  )  [inline]

sc_signal_ports.h153 行で定義されています。

00154         { sc_port_base::bind( CCAST<in_if_type&>( interface_ ) ); }

template<class T>
void sc_core::sc_in< T >::operator() ( const in_if_type interface_  )  [inline]

sc_signal_ports.h156 行で定義されています。

00157         { sc_port_base::bind( CCAST<in_if_type&>( interface_ ) ); }

template<class T>
void sc_core::sc_in< T >::bind ( in_port_type parent_  )  [inline]

sc_core::sc_port_b< IF >を再定義しています。

sc_signal_ports.h162 行で定義されています。

00163         { sc_port_base::bind( parent_ ); }

template<class T>
void sc_core::sc_in< T >::operator() ( in_port_type parent_  )  [inline]

sc_core::sc_port_b< IF >を再定義しています。

sc_signal_ports.h165 行で定義されています。

00166         { sc_port_base::bind( parent_ ); }

template<class T>
void sc_core::sc_in< T >::bind ( inout_port_type parent_  )  [inline]

sc_signal_ports.h171 行で定義されています。

00172         { sc_port_base::bind( parent_ ); }

template<class T>
void sc_core::sc_in< T >::operator() ( inout_port_type parent_  )  [inline]

sc_signal_ports.h174 行で定義されています。

00175         { sc_port_base::bind( parent_ ); }

template<class T>
const sc_event& sc_core::sc_in< T >::default_event (  )  const [inline]

sc_signal_ports.h182 行で定義されています。

00183         { return (*this)->default_event(); }

template<class T>
const sc_event& sc_core::sc_in< T >::value_changed_event (  )  const [inline]

sc_signal_ports.h188 行で定義されています。

00189         { return (*this)->value_changed_event(); }

template<class T>
const data_type& sc_core::sc_in< T >::read (  )  const [inline]

sc_signal_ports.h194 行で定義されています。

00195         { return (*this)->read(); }

template<class T>
sc_core::sc_in< T >::operator const data_type & (  )  const [inline]

sc_signal_ports.h197 行で定義されています。

00198         { return (*this)->read(); }

template<class T>
bool sc_core::sc_in< T >::event (  )  const [inline]

sc_signal_ports.h203 行で定義されています。

00204         { return (*this)->event(); }

template<class T>
sc_event_finder& sc_core::sc_in< T >::value_changed (  )  const [inline]

sc_signal_ports.h209 行で定義されています。

00210     {
00211         if ( !m_change_finder_p )
00212         {
00213             m_change_finder_p = new sc_event_finder_t<in_if_type>(
00214                 *this, &in_if_type::value_changed_event );
00215         }
00216         return *m_change_finder_p;
00217     }

template<class T>
void sc_core::sc_in< T >::end_of_elaboration (  )  [inline, virtual]

sc_core::sc_port_baseを再定義しています。

sc_core::sc_in_rv< W >で再定義されています。

sc_signal_ports.h279 行で定義されています。

00280 {
00281     if( m_traces != 0 ) {
00282         for( int i = 0; i < (int)m_traces->size(); ++ i ) {
00283             sc_trace_params* p = (*m_traces)[i];
00284             in_if_type* iface = DCAST<in_if_type*>( this->get_interface() );
00285             sc_trace( p->tf, iface->read(), p->name );
00286         }
00287         remove_traces();
00288     }
00289 }

template<class T>
virtual const char* sc_core::sc_in< T >::kind (  )  const [inline, virtual]

sc_core::sc_port< IF, N, P >を再定義しています。

sc_core::sc_in_rv< W >で再定義されています。

sc_signal_ports.h226 行で定義されています。

00227         { return "sc_in"; }

template<class T>
void sc_core::sc_in< T >::add_trace ( sc_trace_file tf_,
const std::string &  name_ 
) const [inline]

sc_signal_ports.h311 行で定義されています。

00313 {
00314     sc_deprecated_add_trace();
00315     add_trace_internal(tf_, name_);
00316 }

template<class T>
void sc_core::sc_in< T >::add_trace_internal ( sc_trace_file tf_,
const std::string &  name_ 
) const [inline]

sc_signal_ports.h297 行で定義されています。

00299 {
00300     if( tf_ != 0 ) {
00301         if( m_traces == 0 ) {
00302             m_traces = new sc_trace_params_vec;
00303         }
00304         m_traces->push_back( new sc_trace_params( tf_, name_ ) );
00305     }
00306 }

template<class T>
void sc_core::sc_in< T >::remove_traces (  )  const [inline, protected]

sc_signal_ports.h321 行で定義されています。

00322 {
00323     if( m_traces != 0 ) {
00324         for( int i = (int)m_traces->size() - 1; i >= 0; -- i ) {
00325             delete (*m_traces)[i];
00326         }
00327         delete m_traces;
00328         m_traces = 0;
00329     }
00330 }

template<class T>
int sc_core::sc_in< T >::vbind ( sc_interface interface_  )  [inline, protected, virtual]

sc_core::sc_port_b< IF >を再定義しています。

sc_signal_ports.h338 行で定義されています。

00339 {
00340     return sc_port_b<if_type>::vbind( interface_ );
00341 }

template<class T>
int sc_core::sc_in< T >::vbind ( sc_port_base parent_  )  [inline, protected, virtual]

sc_core::sc_port_b< IF >を再定義しています。

sc_signal_ports.h346 行で定義されています。

00347 {
00348     in_port_type* in_parent = DCAST<in_port_type*>( &parent_ );
00349     if( in_parent != 0 ) {
00350         sc_port_base::bind( *in_parent );
00351         return 0;
00352     }
00353     inout_port_type* inout_parent = DCAST<inout_port_type*>( &parent_ );
00354     if( inout_parent != 0 ) {
00355         sc_port_base::bind( *inout_parent );
00356         return 0;
00357     }
00358     // type mismatch
00359     return 2;
00360 }

template<class T>
this_type& sc_core::sc_in< T >::operator= ( const this_type  )  [private]

sc_core::sc_port< IF, N, P >を再定義しています。

sc_core::sc_in_rv< W >で再定義されています。


変数

template<class T>
sc_trace_params_vec* sc_core::sc_in< T >::m_traces [mutable, protected]

sc_signal_ports.h239 行で定義されています。

template<class T>
sc_event_finder* sc_core::sc_in< T >::m_change_finder_p [mutable, private]

sc_signal_ports.h248 行で定義されています。


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

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