クラス テンプレート 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_type > this_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_event & default_event () const
const sc_event & value_changed_event () const
const data_type & read () const
 operator const data_type & () const
bool event () const
sc_event_finder & value_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_vec * m_traces

Private メソッド

 sc_in (const this_type &)
this_type & operator= (const this_type &)

Private 変数

sc_event_finder * m_change_finder_p


説明

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

sc_signal_ports.h の 69 行で定義されています。


型定義

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

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

sc_signal_ports.h の 76 行で定義されています。

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

sc_signal_ports.h の 78 行で定義されています。

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

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

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

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

sc_signal_ports.h の 82 行で定義されています。

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

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

sc_signal_ports.h の 83 行で定義されています。

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

sc_signal_ports.h の 84 行で定義されています。

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


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

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

sc_signal_ports.h の 91 行で定義されています。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

00166         { sc_port_base::bind( parent_ ); }

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

sc_signal_ports.h の 171 行で定義されています。

00172         { sc_port_base::bind( parent_ ); }

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

sc_signal_ports.h の 174 行で定義されています。

00175         { sc_port_base::bind( parent_ ); }

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

sc_signal_ports.h の 182 行で定義されています。

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

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

sc_signal_ports.h の 188 行で定義されています。

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

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

sc_signal_ports.h の 194 行で定義されています。

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

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

sc_signal_ports.h の 197 行で定義されています。

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

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

sc_signal_ports.h の 203 行で定義されています。

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

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

sc_signal_ports.h の 209 行で定義されています。

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

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

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

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

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

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

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

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

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

sc_signal_ports.h の 248 行で定義されています。


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

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