#include <G4GIDI.hh>
Public Member Functions | |
G4GIDI (int ip, std::string &dataDirectory) | |
G4GIDI (int ip, std::list< std::string > &dataDirectory) | |
~G4GIDI () | |
int | numberOfDataDirectories (void) |
int | addDataDirectory (std::string &dataDirectory) |
int | removeDataDirectory (std::string &dataDirectory) |
std::string | getDataDirectoryAtIndex (int index) |
std::vector< std::string > * | getDataDirectories (void) |
bool | isThisDataAvailable (std::string &lib_name, int iZ, int iA, int iM=0) |
bool | isThisDataAvailable (std::string &lib_name, std::string &targetName) |
char * | dataFilename (std::string &lib_name, int iZ, int iA, int iM=0) |
char * | dataFilename (std::string &lib_name, std::string &targetName) |
std::vector< std::string > * | getNamesOfAvailableLibraries (int iZ, int iA, int iM=0) |
std::vector< std::string > * | getNamesOfAvailableLibraries (std::string &targetName) |
std::vector< std::string > * | getNamesOfAvailableTargets (void) |
G4GIDI_target * | readTarget (std::string &lib_name, int iZ, int iA, int iM=0, bool bind=true) |
G4GIDI_target * | readTarget (std::string &lib_name, std::string &targetName, bool bind=true) |
G4GIDI_target * | getAlreadyReadTarget (int iZ, int iA, int iM=0) |
G4GIDI_target * | getAlreadyReadTarget (std::string &targetName) |
int | freeTarget (int iZ, int iA, int iM=0) |
int | freeTarget (std::string &targetSymbol) |
int | freeTarget (G4GIDI_target *target) |
std::vector< std::string > * | getListOfReadTargetsNames (void) |
Definition at line 73 of file G4GIDI.hh.
G4GIDI::G4GIDI | ( | int | ip, | |
std::string & | dataDirectory | |||
) |
G4GIDI::G4GIDI | ( | int | ip, | |
std::list< std::string > & | dataDirectory | |||
) |
G4GIDI::~G4GIDI | ( | ) |
Definition at line 90 of file G4GIDI.cc.
00090 { 00091 00092 G4GIDI_target *target; 00093 list<G4GIDI_map *>::iterator iter; 00094 00095 while( targets.size( ) > 0 ) { 00096 target = targets.back( ); 00097 targets.pop_back( ); 00098 delete target; 00099 } 00100 00101 while( ( iter = dataDirectories.begin( ) ) != dataDirectories.end( ) ) { 00102 delete *iter; 00103 dataDirectories.pop_front( ); 00104 } 00105 }
int G4GIDI::addDataDirectory | ( | std::string & | dataDirectory | ) |
char* G4GIDI::dataFilename | ( | std::string & | lib_name, | |
std::string & | targetName | |||
) |
char* G4GIDI::dataFilename | ( | std::string & | lib_name, | |
int | iZ, | |||
int | iA, | |||
int | iM = 0 | |||
) |
int G4GIDI::freeTarget | ( | G4GIDI_target * | target | ) |
Definition at line 351 of file G4GIDI.cc.
00351 { 00352 00353 vector<G4GIDI_target *>::iterator iter_targets; 00354 00355 for( iter_targets = targets.begin( ); iter_targets != targets.end( ); iter_targets++ ) { 00356 if( *iter_targets == target ) { 00357 targets.erase( iter_targets ); 00358 delete target; 00359 return( 0 ); 00360 } 00361 } 00362 return( 1 ); 00363 }
int G4GIDI::freeTarget | ( | std::string & | targetSymbol | ) |
int G4GIDI::freeTarget | ( | int | iZ, | |
int | iA, | |||
int | iM = 0 | |||
) |
Definition at line 367 of file G4GIDI.cc.
References G4GIDI_Misc_Z_A_m_ToName(), and xData_free().
00367 { 00368 00369 int status; 00370 char *targetName = G4GIDI_Misc_Z_A_m_ToName( iZ, iA, iM ); 00371 00372 if( targetName == NULL ) return( 1 ); 00373 string targetSymbol( targetName ); 00374 status = freeTarget( targetSymbol ); 00375 xData_free( NULL, targetName ); 00376 return( status ); 00377 }
G4GIDI_target* G4GIDI::getAlreadyReadTarget | ( | std::string & | targetName | ) |
G4GIDI_target * G4GIDI::getAlreadyReadTarget | ( | int | iZ, | |
int | iA, | |||
int | iM = 0 | |||
) |
Definition at line 325 of file G4GIDI.cc.
References G4GIDI_Misc_Z_A_m_ToName(), and xData_free().
00325 { 00326 00327 char *targetName = G4GIDI_Misc_Z_A_m_ToName( iZ, iA, iM ); 00328 G4GIDI_target *target; 00329 00330 if( targetName == NULL ) return( NULL ); 00331 string targetSymbol( targetName ); 00332 target = getAlreadyReadTarget( targetSymbol ); 00333 xData_free( NULL, targetName ); 00334 return( target ); 00335 }
Definition at line 172 of file G4GIDI.cc.
References numberOfDataDirectories().
00172 { 00173 00174 int i = 0; 00175 list<G4GIDI_map *>::iterator iter; 00176 vector<string> *v = new vector<string>( numberOfDataDirectories( ) ); 00177 00178 for( iter = dataDirectories.begin( ); iter != dataDirectories.end( ); iter++, i++ ) (*v)[i] = string( (*iter)->fileName( ) ); 00179 return( v ); 00180 }
string G4GIDI::getDataDirectoryAtIndex | ( | int | index | ) |
Definition at line 155 of file G4GIDI.cc.
00155 { 00156 00157 #if 0 00158 list<G4GIDI_map *>::iterator iter; 00159 unsigned i = (unsigned) index; 00160 00161 if( i < 0 ) return( "" ); 00162 if( i >= dataDirectories.size( ) ) return( "" ); 00163 for( iter = dataDirectories.begin( ); iter != dataDirectories.end( ); iter++, i-- ) { 00164 if( i == 0 ) return( (*iter)->fileName( ) ); 00165 } 00166 #endif 00167 return( "" ); 00168 }
Definition at line 393 of file G4GIDI.cc.
00393 { 00394 00395 vector<G4GIDI_target *>::iterator iter_targets; 00396 vector<string> *listOfTargets; 00397 00398 listOfTargets = new vector<string>( ); 00399 if( listOfTargets == NULL ) return( NULL ); 00400 for( iter_targets = targets.begin( ); iter_targets != targets.end( ); iter_targets++ ) { 00401 listOfTargets->push_back( *(*iter_targets)->getName( ) ); 00402 } 00403 return( listOfTargets ); 00404 }
std::vector<std::string>* G4GIDI::getNamesOfAvailableLibraries | ( | std::string & | targetName | ) |
Definition at line 240 of file G4GIDI.cc.
References G4GIDI_Misc_Z_A_m_ToName(), and xData_free().
Referenced by G4LENDManager::GetLENDTarget(), and G4LENDManager::IsLENDTargetAvailable().
00240 { 00241 00242 char *targetName = G4GIDI_Misc_Z_A_m_ToName( iZ, iA, iM ); 00243 vector<string> *listOfLibraries; 00244 00245 if( targetName == NULL ) return( new vector<string>( ) ); 00246 string targetSymbol( targetName ); 00247 listOfLibraries = getNamesOfAvailableLibraries( targetSymbol ); 00248 xData_free( NULL, targetName ); 00249 return( listOfLibraries ); 00250 }
Definition at line 275 of file G4GIDI.cc.
References getNamesOfAvailableTargets_walker(), and tpia_map_walkTree().
00275 { 00276 00277 vector<string> *listOfTargets; 00278 list<G4GIDI_map *>::iterator iter_map; 00279 00280 listOfTargets = new vector<string>( ); 00281 if( listOfTargets == NULL ) return( NULL ); 00282 for( iter_map = dataDirectories.begin( ); iter_map != dataDirectories.end( ); iter_map++ ) { 00283 if( tpia_map_walkTree( NULL, (*iter_map)->map, getNamesOfAvailableTargets_walker, (void *) listOfTargets ) != 0 ) { 00284 delete listOfTargets; 00285 return( NULL ); 00286 } 00287 } 00288 return( listOfTargets ); 00289 }
bool G4GIDI::isThisDataAvailable | ( | std::string & | lib_name, | |
std::string & | targetName | |||
) |
bool G4GIDI::isThisDataAvailable | ( | std::string & | lib_name, | |
int | iZ, | |||
int | iA, | |||
int | iM = 0 | |||
) |
Referenced by G4LENDManager::GetLENDTarget().
int G4GIDI::numberOfDataDirectories | ( | void | ) |
G4GIDI_target* G4GIDI::readTarget | ( | std::string & | lib_name, | |
std::string & | targetName, | |||
bool | bind = true | |||
) |
G4GIDI_target* G4GIDI::readTarget | ( | std::string & | lib_name, | |
int | iZ, | |||
int | iA, | |||
int | iM = 0 , |
|||
bool | bind = true | |||
) |
Referenced by G4LENDManager::GetLENDTarget().
int G4GIDI::removeDataDirectory | ( | std::string & | dataDirectory | ) |