クラス sc_core::sc_name_gen

#include <sc_name_gen.h>

すべてのメンバ一覧

Public メソッド

 sc_name_gen ()
 ~sc_name_gen ()
const char * gen_unique_name (const char *basename_, bool preserve_first=false)

Private メソッド

 sc_name_gen (const sc_name_gen &)
sc_name_genoperator= (const sc_name_gen &)

Private 変数

sc_strhash< int * > m_unique_name_map
char m_unique_name [BUFSIZ]


説明

sc_name_gen.h60 行で定義されています。


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

sc_core::sc_name_gen::sc_name_gen (  ) 

sc_name_gen.cpp57 行で定義されています。

00058 {}

sc_core::sc_name_gen::~sc_name_gen (  ) 

sc_name_gen.cpp60 行で定義されています。

00061 {
00062     sc_strhash<int*>::iterator it( m_unique_name_map );
00063     for( ; ! it.empty(); it ++ ) {
00064         delete it.contents();
00065     }
00066     m_unique_name_map.erase();
00067 }

sc_core::sc_name_gen::sc_name_gen ( const sc_name_gen  )  [private]


関数

const char * sc_core::sc_name_gen::gen_unique_name ( const char *  basename_,
bool  preserve_first = false 
)

sc_name_gen.cpp73 行で定義されています。

00074 {
00075     if( basename_ == 0 ) {
00076         SC_REPORT_ERROR( SC_ID_GEN_UNIQUE_NAME_, 0 );
00077     }
00078     int* c = m_unique_name_map[basename_];
00079     if( c == 0 ) {
00080         c = new int( 0 );
00081         m_unique_name_map.insert( CCAST<char*>( basename_ ), c );
00082         if (preserve_first) {
00083             std::sprintf( m_unique_name, "%s", basename_ );
00084         } else {    
00085             std::sprintf( m_unique_name, "%s_%d", basename_, *c );
00086         }
00087     } else {
00088         std::sprintf( m_unique_name, "%s_%d", basename_, ++ (*c) );
00089     }
00090     return m_unique_name;
00091 }

sc_name_gen& sc_core::sc_name_gen::operator= ( const sc_name_gen  )  [private]


変数

sc_name_gen.h73 行で定義されています。

char sc_core::sc_name_gen::m_unique_name[BUFSIZ] [private]

sc_name_gen.h74 行で定義されています。


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

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