#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_gen & | operator= (const sc_name_gen &) |
Private 変数 | |
sc_strhash< int * > | m_unique_name_map |
char | m_unique_name [BUFSIZ] |
sc_name_gen.h の 60 行で定義されています。
sc_core::sc_name_gen::sc_name_gen | ( | ) |
sc_core::sc_name_gen::~sc_name_gen | ( | ) |
sc_name_gen.cpp の 60 行で定義されています。
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.cpp の 73 行で定義されています。
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_strhash<int*> sc_core::sc_name_gen::m_unique_name_map [private] |
sc_name_gen.h の 73 行で定義されています。
char sc_core::sc_name_gen::m_unique_name[BUFSIZ] [private] |
sc_name_gen.h の 74 行で定義されています。