クラス テンプレート sc_core::sc_inout< bool >

#include <sc_signal_ports.h>

sc_core::sc_inout< bool >に対する継承グラフ

Inheritance graph
[凡例]

すべてのメンバ一覧

Public 型

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

Public メソッド

 sc_inout ()
 sc_inout (const char *name_)
 sc_inout (inout_if_type &interface_)
 sc_inout (const char *name_, inout_if_type &interface_)
 sc_inout (inout_port_type &parent_)
 sc_inout (const char *name_, inout_port_type &parent_)
 sc_inout (this_type &parent_)
 sc_inout (const char *name_, this_type &parent_)
virtual ~sc_inout ()
const sc_eventdefault_event () const
const sc_eventvalue_changed_event () const
const sc_eventposedge_event () const
const sc_eventnegedge_event () const
const data_typeread () const
 operator const data_type & () const
sc_event_finderpos () const
sc_event_finderneg () const
bool event () const
bool posedge () const
bool negedge () const
void write (const data_type &value_)
this_typeoperator= (const data_type &value_)
this_typeoperator= (const in_if_type &interface_)
this_typeoperator= (const in_port_type &port_)
this_typeoperator= (const inout_port_type &port_)
this_typeoperator= (const this_type &port_)
void initialize (const data_type &value_)
void initialize (const in_if_type &interface_)
virtual void end_of_elaboration ()
sc_event_findervalue_changed () const
virtual const char * kind () const
void add_trace_internal (sc_trace_file *, const std::string &) const
void add_trace (sc_trace_file *, const std::string &) const

Protected メソッド

void remove_traces () const

Protected 変数

data_typem_init_val
sc_trace_params_vecm_traces

Private メソッド

 sc_inout (const this_type &)

Private 変数

sc_event_finderm_change_finder_p
sc_event_finderm_neg_finder_p
sc_event_finderm_pos_finder_p


説明

template<>
class sc_core::sc_inout< bool >

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


型定義

typedef bool sc_core::sc_inout< bool >::data_type

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

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

typedef sc_port<if_type,1,SC_ONE_OR_MORE_BOUND> sc_core::sc_inout< bool >::base_type

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

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

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

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

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

typedef sc_port<in_if_type,1,SC_ONE_OR_MORE_BOUND> sc_core::sc_inout< bool >::in_port_type

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

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

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


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

sc_core::sc_inout< bool >::sc_inout (  )  [inline]

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

01201         : base_type(), m_init_val( 0 ), m_traces( 0 ),
01202           m_change_finder_p(0), m_neg_finder_p(0), m_pos_finder_p(0)
01203         {}

sc_core::sc_inout< bool >::sc_inout ( const char *  name_  )  [inline, explicit]

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

01206         : base_type( name_ ), m_init_val( 0 ), m_traces( 0 ),
01207           m_change_finder_p(0), m_neg_finder_p(0), m_pos_finder_p(0)
01208         {}

sc_core::sc_inout< bool >::sc_inout ( inout_if_type interface_  )  [inline, explicit]

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

01211         : base_type( interface_ ), m_init_val( 0 ), m_traces( 0 ),
01212           m_change_finder_p(0), m_neg_finder_p(0), m_pos_finder_p(0)
01213         {}

sc_core::sc_inout< bool >::sc_inout ( const char *  name_,
inout_if_type interface_ 
) [inline]

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

01216         : base_type( name_, interface_ ), m_init_val( 0 ), m_traces( 0 ),
01217           m_change_finder_p(0), m_neg_finder_p(0), m_pos_finder_p(0)
01218         {}

sc_core::sc_inout< bool >::sc_inout ( inout_port_type parent_  )  [inline, explicit]

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

01221         : base_type( parent_ ), m_init_val( 0 ), m_traces( 0 ),
01222           m_change_finder_p(0), m_neg_finder_p(0), m_pos_finder_p(0)
01223         {}

sc_core::sc_inout< bool >::sc_inout ( const char *  name_,
inout_port_type parent_ 
) [inline]

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

01226         : base_type( name_, parent_ ), m_init_val( 0 ), m_traces( 0 ),
01227           m_change_finder_p(0), m_neg_finder_p(0), m_pos_finder_p(0)
01228         {}

sc_core::sc_inout< bool >::sc_inout ( this_type parent_  )  [inline]

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

01231         : base_type( parent_ ), m_init_val( 0 ), m_traces( 0 ),
01232           m_change_finder_p(0), m_neg_finder_p(0), m_pos_finder_p(0)
01233         {}

sc_core::sc_inout< bool >::sc_inout ( const char *  name_,
this_type parent_ 
) [inline]

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

01236         : base_type( name_, parent_ ), m_init_val( 0 ), m_traces( 0 ),
01237           m_change_finder_p(0), m_neg_finder_p(0), m_pos_finder_p(0)
01238         {}

sc_core::sc_inout< bool >::~sc_inout (  )  [virtual]

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

00249 {
00250     if ( m_change_finder_p ) delete m_change_finder_p;
00251     if ( m_neg_finder_p ) delete m_neg_finder_p;
00252     if ( m_pos_finder_p ) delete m_pos_finder_p;
00253     if( m_init_val != 0 ) {
00254         delete m_init_val;
00255     }
00256     remove_traces();
00257 }

sc_core::sc_inout< bool >::sc_inout ( const this_type  )  [private]


関数

const sc_event& sc_core::sc_inout< bool >::default_event (  )  const [inline]

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

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

const sc_event& sc_core::sc_inout< bool >::value_changed_event (  )  const [inline]

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

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

const sc_event& sc_core::sc_inout< bool >::posedge_event (  )  const [inline]

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

01262         { return (*this)->posedge_event(); }

const sc_event& sc_core::sc_inout< bool >::negedge_event (  )  const [inline]

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

01267         { return (*this)->negedge_event(); }

const data_type& sc_core::sc_inout< bool >::read (  )  const [inline]

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

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

sc_core::sc_inout< bool >::operator const data_type & (  )  const [inline]

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

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

sc_event_finder& sc_core::sc_inout< bool >::pos (  )  const [inline]

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

01282     {
01283         if ( !m_pos_finder_p )
01284         {
01285             m_pos_finder_p = new sc_event_finder_t<in_if_type>(
01286                 *this, &in_if_type::posedge_event );
01287         } 
01288         return *m_pos_finder_p;
01289     }

sc_event_finder& sc_core::sc_inout< bool >::neg (  )  const [inline]

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

01294     {
01295         if ( !m_neg_finder_p )
01296         {
01297             m_neg_finder_p = new sc_event_finder_t<in_if_type>(
01298                 *this, &in_if_type::negedge_event );
01299         } 
01300         return *m_neg_finder_p;
01301     }

bool sc_core::sc_inout< bool >::event (  )  const [inline]

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

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

bool sc_core::sc_inout< bool >::posedge (  )  const [inline]

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

01312         { return (*this)->posedge(); }

bool sc_core::sc_inout< bool >::negedge (  )  const [inline]

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

01317         { return (*this)->negedge(); }

void sc_core::sc_inout< bool >::write ( const data_type value_  )  [inline]

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

01322         { (*this)->write( value_ ); }

this_type& sc_core::sc_inout< bool >::operator= ( const data_type value_  )  [inline]

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

01325         { (*this)->write( value_ ); return *this; }

this_type& sc_core::sc_inout< bool >::operator= ( const in_if_type interface_  )  [inline]

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

01328         { (*this)->write( interface_.read() ); return *this; }

this_type& sc_core::sc_inout< bool >::operator= ( const in_port_type port_  )  [inline]

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

01331         { (*this)->write( port_->read() ); return *this; }

this_type& sc_core::sc_inout< bool >::operator= ( const inout_port_type port_  )  [inline]

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

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

01334         { (*this)->write( port_->read() ); return *this; }

this_type& sc_core::sc_inout< bool >::operator= ( const this_type port_  )  [inline]

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

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

01337         { (*this)->write( port_->read() ); return *this; }

void sc_core::sc_inout< bool >::initialize ( const data_type value_  ) 

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

00264 {
00265     inout_if_type* iface = DCAST<inout_if_type*>( get_interface() );
00266     if( iface != 0 ) {
00267         iface->write( value_ );
00268     } else {
00269         if( m_init_val == 0 ) {
00270             m_init_val = new data_type;
00271         }
00272         *m_init_val = value_;
00273     }
00274 }

void sc_core::sc_inout< bool >::initialize ( const in_if_type interface_  )  [inline]

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

01345         { initialize( interface_.read() ); }

void sc_core::sc_inout< bool >::end_of_elaboration (  )  [virtual]

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

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

00281 {
00282     if( m_init_val != 0 ) {
00283         write( *m_init_val );
00284         delete m_init_val;
00285         m_init_val = 0;
00286     }
00287     if( m_traces != 0 ) {
00288         for( int i = 0; i < (int)m_traces->size(); ++ i ) {
00289             sc_trace_params* p = (*m_traces)[i];
00290             in_if_type* iface = DCAST<in_if_type*>( get_interface() );
00291             sc_trace( p->tf, iface->read(), p->name );
00292         }
00293         remove_traces();
00294     }
00295 }

sc_event_finder& sc_core::sc_inout< bool >::value_changed (  )  const [inline]

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

01358     {
01359         if ( !m_change_finder_p )
01360         {
01361             m_change_finder_p = new sc_event_finder_t<in_if_type>(
01362                 *this, &in_if_type::value_changed_event );
01363         }
01364         return *m_change_finder_p;
01365     }

virtual const char* sc_core::sc_inout< bool >::kind (  )  const [inline, virtual]

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

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

01368         { return "sc_inout"; }

void sc_core::sc_inout< bool >::add_trace_internal ( sc_trace_file tf_,
const std::string &  name_ 
) const

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

00303 {
00304     if( tf_ != 0 ) {
00305         if( m_traces == 0 ) {
00306             m_traces = new sc_trace_params_vec;
00307         }
00308         m_traces->push_back( new sc_trace_params( tf_, name_ ) );
00309     }
00310 }

void sc_core::sc_inout< bool >::add_trace ( sc_trace_file tf_,
const std::string &  name_ 
) const

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

00315 {
00316     sc_deprecated_add_trace();
00317     add_trace_internal(tf_, name_);
00318 }

void sc_core::sc_inout< bool >::remove_traces (  )  const [protected]

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

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


変数

data_type* sc_core::sc_inout< bool >::m_init_val [protected]

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

sc_trace_params_vec* sc_core::sc_inout< bool >::m_traces [mutable, protected]

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

sc_event_finder* sc_core::sc_inout< bool >::m_change_finder_p [mutable, private]

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

sc_event_finder* sc_core::sc_inout< bool >::m_neg_finder_p [mutable, private]

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

sc_event_finder* sc_core::sc_inout< bool >::m_pos_finder_p [mutable, private]

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


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

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