BDSIM
BDSIM is a Geant4 extension toolkit for simulation of particle transport in accelerator beamlines.
|
Holder for all temporary files created by BDSIM. More...
#include <BDSTemporaryFiles.hh>
Public Member Functions | |
G4String | CreateTemporaryFileUnnamed (const G4String &extension) |
G4String | CreateTemporaryFile (const G4String &originalFilePath, G4String fileNamePrefix="", G4String fileNameSuffix="") |
Static Public Member Functions | |
static BDSTemporaryFiles * | Instance () |
Singleton accessor. | |
Private Member Functions | |
BDSTemporaryFiles () | |
Private default constructor as singleton. | |
void | InitialiseTempDir () |
void | WarnOfNewFile (const G4String &newFileName) |
User feedback that new file has been created. | |
Private Attributes | |
G4String | userSpecifiedTemporaryDirectory |
Optional user-specified path to try. | |
G4String | temporaryDirectory |
Directory all files will be placed in. | |
G4bool | temporaryDirectorySet |
Whether directory has been set and made. | |
std::vector< G4String > | allocatedFiles |
Record of of all files allocated. | |
G4int | unNamedFileCount |
Count of unnamed files created. | |
G4bool | removeTemporaryFiles |
Whether to clean up. | |
Static Private Attributes | |
static BDSTemporaryFiles * | instance = nullptr |
Singleton instance. | |
Holder for all temporary files created by BDSIM.
A single place where all temporary file names are held. The class determines a directory to put them when required and cleans up all temporary files upon deletion.
Has a separate method to initialise the temporary directory so that it's possible to delete the singleton at the end of the program without having to construct the temporary directory and possibly encountering an error.
Definition at line 41 of file BDSTemporaryFiles.hh.
BDSTemporaryFiles::~BDSTemporaryFiles | ( | ) |
Definition at line 97 of file BDSTemporaryFiles.cc.
|
private |
Private default constructor as singleton.
Definition at line 35 of file BDSTemporaryFiles.cc.
References BDSGlobalConstants::Instance(), removeTemporaryFiles, and userSpecifiedTemporaryDirectory.
Referenced by Instance().
G4String BDSTemporaryFiles::CreateTemporaryFile | ( | const G4String & | originalFilePath, |
G4String | fileNamePrefix = "" , |
||
G4String | fileNameSuffix = "" |
||
) |
Create a temporary file for use in BDSIM based on a currently existing one. A file with the same name but with the file name prefix and suffix in the temporary directory will be returned. It's the caller's responsibility to open this file.
Definition at line 150 of file BDSTemporaryFiles.cc.
References allocatedFiles, InitialiseTempDir(), BDS::SplitFileAndExtension(), BDS::SplitPathAndFileName(), temporaryDirectory, temporaryDirectorySet, and WarnOfNewFile().
Referenced by BDSGDMLPreprocessor::PreprocessFile().
G4String BDSTemporaryFiles::CreateTemporaryFileUnnamed | ( | const G4String & | extension | ) |
Create a temporary file for use in BDSIM. A unique file name will be returned. It's the caller's responsibility to open this file.
Definition at line 137 of file BDSTemporaryFiles.cc.
References allocatedFiles, InitialiseTempDir(), temporaryDirectory, temporaryDirectorySet, unNamedFileCount, and WarnOfNewFile().
|
private |
Separate function to initialise temporary directory. This way it can be optionally called in case the temp dir isn't used at all and the singleton is deleted at the end of the program. No point getting error about temp dir upon cleaning up something that wasn't used.
Definition at line 45 of file BDSTemporaryFiles.cc.
References BDS::DirectoryExists(), BDS::GetBDSIMExecPath(), temporaryDirectory, temporaryDirectorySet, and userSpecifiedTemporaryDirectory.
Referenced by CreateTemporaryFile(), and CreateTemporaryFileUnnamed().
|
static |
Singleton accessor.
Definition at line 130 of file BDSTemporaryFiles.cc.
References BDSTemporaryFiles(), and instance.
Referenced by BDSGDMLPreprocessor::PreprocessFile(), BDSIM::~BDSIM(), and BDSIMLink::~BDSIMLink().
|
private |
User feedback that new file has been created.
Definition at line 176 of file BDSTemporaryFiles.cc.
Referenced by CreateTemporaryFile(), and CreateTemporaryFileUnnamed().
|
private |
Record of of all files allocated.
Definition at line 79 of file BDSTemporaryFiles.hh.
Referenced by CreateTemporaryFile(), and CreateTemporaryFileUnnamed().
|
staticprivate |
|
private |
Whether to clean up.
Definition at line 81 of file BDSTemporaryFiles.hh.
Referenced by BDSTemporaryFiles().
|
private |
Directory all files will be placed in.
Definition at line 77 of file BDSTemporaryFiles.hh.
Referenced by CreateTemporaryFile(), CreateTemporaryFileUnnamed(), and InitialiseTempDir().
|
private |
Whether directory has been set and made.
Definition at line 78 of file BDSTemporaryFiles.hh.
Referenced by CreateTemporaryFile(), CreateTemporaryFileUnnamed(), and InitialiseTempDir().
|
private |
Count of unnamed files created.
Definition at line 80 of file BDSTemporaryFiles.hh.
Referenced by CreateTemporaryFileUnnamed().
|
private |
Optional user-specified path to try.
Definition at line 76 of file BDSTemporaryFiles.hh.
Referenced by BDSTemporaryFiles(), and InitialiseTempDir().