JAPAn
Just Another Parity Analyzer
|
Configuration file parser with flexible tokenization and search capabilities. More...
#include <QwParameterFile.h>
Public Member Functions | |
QwParameterFile (const std::string &filename) | |
QwParameterFile (const std::stringstream &stream) | |
virtual | ~QwParameterFile () |
std::streambuf * | rdbuf () const |
Access the streambuf pointer in the same way as on a std::ifstream. | |
void | SetCommentChars (const std::string value) |
Set various sets of special characters. | |
void | SetWhitespaceChars (const std::string value) |
void | SetTokenSepChars (const std::string value) |
void | SetSectionChars (const std::string value) |
void | SetModuleChars (const std::string value) |
Bool_t | ReadNextLine () |
Bool_t | ReadNextLine (std::string &varvalue) |
Bool_t | ReadNextLine_Greedy (std::string &varvalue) |
Bool_t | ReadNextLine_Single (std::string &varvalue) |
void | TrimWhitespace (TString::EStripType head_tail=TString::kBoth) |
void | TrimComment (const char commentchar) |
void | TrimComment (const std::string &commentchars) |
void | TrimComment () |
void | TrimSectionHeader () |
void | TrimModuleHeader () |
TString | LastString (TString in, char *delim) |
TString | GetParameterFileContents () |
Bool_t | LineIsEmpty () |
Bool_t | IsEOF () |
std::string | GetNextToken (const std::string &separatorchars) |
Get next token as a string. | |
std::string | GetNextToken () |
template<typename T> | |
T | GetTypedNextToken () |
Get next token into specific type. | |
std::string | GetLine () |
void | AddLine (const std::string &line) |
void | RewindToFileStart () |
void | RewindToLineStart () |
Bool_t | HasValue (TString &vname) |
Bool_t | HasVariablePair (const std::string &separatorchars, std::string &varname, std::string &varvalue) |
Bool_t | HasVariablePair (const std::string &separatorchars, TString &varname, TString &varvalue) |
Bool_t | FileHasVariablePair (const std::string &separatorchars, const std::string &varname, std::string &varvalue) |
Bool_t | FileHasVariablePair (const std::string &separatorchars, const TString &varname, TString &varvalue) |
template<typename T> | |
Bool_t | FileHasVariablePair (const std::string &separatorchars, const std::string &varname, T &varvalue) |
Bool_t | LineHasSectionHeader () |
Bool_t | LineHasSectionHeader (std::string &secname) |
Bool_t | LineHasSectionHeader (TString &secname) |
Bool_t | LineHasModuleHeader () |
Bool_t | LineHasModuleHeader (std::string &secname) |
Bool_t | LineHasModuleHeader (TString &secname) |
Bool_t | FileHasSectionHeader (const std::string &secname) |
Bool_t | FileHasSectionHeader (const TString &secname) |
Bool_t | FileHasModuleHeader (const std::string &secname) |
Bool_t | FileHasModuleHeader (const TString &secname) |
Bool_t | SkipSection (std::string secname) |
Skips from the beginning of the section 'secname' until the first section that does not have that name. | |
std::unique_ptr< QwParameterFile > | ReadSectionPreamble () |
Rewinds to the start and read until it finds next section header. | |
std::unique_ptr< QwParameterFile > | ReadUntilNextSection (const bool add_current_line=false) |
std::unique_ptr< QwParameterFile > | ReadNextSection (std::string &secname, const bool keep_header=false) |
std::unique_ptr< QwParameterFile > | ReadNextSection (TString &secname, const bool keep_header=false) |
std::unique_ptr< QwParameterFile > | ReadNextSection (const bool keep_header=false) |
std::unique_ptr< QwParameterFile > | ReadModulePreamble () |
Rewinds to the start and read until it finds next module header. | |
std::unique_ptr< QwParameterFile > | ReadUntilNextModule (const bool add_current_line=false) |
std::unique_ptr< QwParameterFile > | ReadNextModule (std::string &secname, const bool keep_header=false) |
std::unique_ptr< QwParameterFile > | ReadNextModule (TString &secname, const bool keep_header=false) |
std::unique_ptr< QwParameterFile > | ReadNextModule (const bool keep_header=false) |
const TString | GetParamFilename () |
const TString | GetParamFilenameAndPath () |
const std::pair< TString, TString > | GetParamFileNameContents () |
void | SetParamFilename () |
void | EnableGreediness () |
void | DisableGreediness () |
void | AddBreakpointKeyword (std::string keyname) |
void | Close () |
Bool_t | HasNewPairs () |
template<typename T> | |
Bool_t | ReturnValue (const std::string keyname, T &retvalue) |
template<typename T> | |
Bool_t | PopValue (const std::string keyname, T &retvalue) |
template<typename T> | |
T | ConvertValue (const std::string &value) |
Convert string value into specific type. | |
template<> | |
UInt_t | ConvertValue (const std::string &value) |
template<> | |
bool | ConvertValue (const std::string &value) |
template<> | |
TString | ConvertValue (const std::string &value) |
Static Public Member Functions | |
static UInt_t | GetUInt (const TString &varvalue) |
static void | AppendToSearchPath (const TString &searchdir) |
Add a directory to the search path. | |
static void | SetCurrentRunNumber (const UInt_t runnumber) |
Set the current run number for looking up the appropriate parameter file. | |
static std::pair< int, int > | ParseIntRange (const std::string &separatorchars, const std::string &range) |
Parse a range of integers as #:# where either can be missing. | |
static int | ParseInt (const std::string &value) |
Parse an integer as #[kM] with optional metric scale factor. | |
Protected Member Functions | |
void | Trim (const std::string &chars, std::string &token, TString::EStripType head_tail=TString::kBoth) |
void | TrimWhitespace (std::string &token, TString::EStripType head_tail) |
Bool_t | GetKeyValue (const std::string keyname, std::string &retvalue, Bool_t should_erase=kFALSE) |
Current position in the line. | |
Protected Attributes | |
std::string | fCommentChars |
std::string | fWhitespaceChars |
std::string | fTokenSepChars |
std::string | fSectionChars |
std::string | fModuleChars |
const std::string | fFilename |
std::ifstream | fFile |
std::stringstream | fStream |
std::string | fLine |
size_t | fCurrentPos |
Internal line storage. | |
Bool_t | fBeGreedy |
std::set< std::string > | fBreakpointWords |
std::map< std::string, std::string > | fKeyValuePair |
Bool_t | fHasNewPairs |
Static Protected Attributes | |
static std::vector< fs::path > | fSearchPaths |
static UInt_t | fCurrentRunNumber = 0 |
static const std::string | kDefaultCommentChars = "#!;" |
static const std::string | kDefaultWhitespaceChars = " \t\r" |
static const std::string | kDefaultTokenSepChars = ", \t" |
static const std::string | kDefaultSectionChars = "[]" |
static const std::string | kDefaultModuleChars = "<>" |
Private Member Functions | |
int | FindFile (const fs::path &dir_path, const std::string &file_stem, const std::string &file_ext, fs::path &path_found) |
Find the first file in a directory that conforms to the run label. | |
bool | OpenFile (const fs::path &path_found) |
Open a file. | |
QwParameterFile () | |
QwParameterFile (const QwParameterFile &input) | |
void | SetEOF () |
Private Attributes | |
TString | fBestParamFileName |
TString | fBestParamFileNameAndPath |
Friends | |
std::ostream & | operator<< (std::ostream &stream, const QwParameterFile &file) |
Configuration file parser with flexible tokenization and search capabilities.
Provides parsing of configuration files with support for comments, section headers, variable substitution, file inclusion (append), and configurable token separators. Includes search path management and run-number-based parameter file selection. Used throughout the framework for loading detector maps, cut parameters, and subsystem configurations.
Definition at line 49 of file QwParameterFile.h.
QwParameterFile::QwParameterFile | ( | const std::string & | name | ) |
Constructor
name | Name of the file to be opened |
If file starts with an explicit slash ('/'), it is assumed to be a full path.
Definition at line 110 of file QwParameterFile.cc.
References QwLog::endl(), fBeGreedy, fCommentChars, fFilename, FindFile(), fModuleChars, fSearchPaths, fSectionChars, fTokenSepChars, fWhitespaceChars, kDefaultCommentChars, kDefaultModuleChars, kDefaultSectionChars, kDefaultTokenSepChars, kDefaultWhitespaceChars, Qw::kGreen, Qw::kNormal, OpenFile(), QwError, QwMessage, QwWarning, and SetEOF().
Referenced by operator<<, QwParameterFile(), and ReadNextLine_Single().
QwParameterFile::QwParameterFile | ( | const std::stringstream & | stream | ) |
Constructor
stream | String stream for reading |
Definition at line 91 of file QwParameterFile.cc.
References fBeGreedy, fCommentChars, fFilename, fModuleChars, fSectionChars, fStream, fTokenSepChars, fWhitespaceChars, kDefaultCommentChars, kDefaultModuleChars, kDefaultSectionChars, kDefaultTokenSepChars, and kDefaultWhitespaceChars.
|
inlinevirtual |
Definition at line 59 of file QwParameterFile.h.
|
inlineprivate |
Definition at line 349 of file QwParameterFile.h.
References fBeGreedy, fCommentChars, fCurrentPos, fFilename, fHasNewPairs, fModuleChars, fSectionChars, fTokenSepChars, fWhitespaceChars, kDefaultCommentChars, kDefaultModuleChars, kDefaultSectionChars, kDefaultTokenSepChars, and kDefaultWhitespaceChars.
Referenced by ReadUntilNextModule(), and ReadUntilNextSection().
|
inlineprivate |
Definition at line 362 of file QwParameterFile.h.
References fBeGreedy, fCommentChars, fCurrentPos, fFilename, fHasNewPairs, fModuleChars, fSectionChars, fTokenSepChars, fWhitespaceChars, and QwParameterFile().
void QwParameterFile::AddBreakpointKeyword | ( | std::string | keyname | ) |
Definition at line 891 of file QwParameterFile.cc.
References fBreakpointWords.
Referenced by QwBeamLine::LoadChannelMap(), and QwScaler::LoadChannelMap().
|
inline |
Definition at line 142 of file QwParameterFile.h.
References fStream.
|
static |
Add a directory to the search path.
Append a directory to the list of search paths
searchdir | Directory to be added |
Definition at line 34 of file QwParameterFile.cc.
References fSearchPaths.
Referenced by main(), and main().
|
inline |
Definition at line 220 of file QwParameterFile.h.
References fFile.
Referenced by QwBeamLine::LoadChannelMap(), QwEPICSEvent::LoadChannelMap(), QwHelicity::LoadChannelMap(), QwScaler::LoadChannelMap(), VQwDetectorArray::LoadChannelMap(), VQwSubsystemParity::LoadEventCuts(), QwBeamLine::LoadGeometryDefinition(), QwBeamLine::LoadInputParameters(), QwScaler::LoadInputParameters(), VQwDetectorArray::LoadInputParameters(), and VQwDetectorArray::LoadMockDataParameters().
|
inline |
Convert string value into specific type.
Definition at line 256 of file QwParameterFile.h.
Referenced by FileHasVariablePair(), GetTypedNextToken(), PopValue(), QwParameterFile::ConvertValue< std::string >(), and ReturnValue().
|
inline |
Definition at line 386 of file QwParameterFile.h.
References GetUInt().
|
inline |
Definition at line 396 of file QwParameterFile.h.
|
inline |
Definition at line 409 of file QwParameterFile.h.
|
inline |
|
inline |
Definition at line 215 of file QwParameterFile.h.
References fBeGreedy.
Referenced by QwBeamLine::LoadChannelMap(), QwBeamMod::LoadChannelMap(), QwHelicity::LoadChannelMap(), QwScaler::LoadChannelMap(), VQwDetectorArray::LoadChannelMap(), and VQwDataHandler::ParseConfigFile().
Bool_t QwParameterFile::FileHasModuleHeader | ( | const std::string & | secname | ) |
Definition at line 606 of file QwParameterFile.cc.
References LineHasModuleHeader(), ReadNextLine(), and RewindToFileStart().
Referenced by QwBeamLine::ConstructBranch(), QwCombinerSubsystem::ConstructBranch(), and VQwDetectorArray::ConstructBranch().
Bool_t QwParameterFile::FileHasModuleHeader | ( | const TString & | secname | ) |
Definition at line 594 of file QwParameterFile.cc.
References LineHasModuleHeader(), ReadNextLine(), and RewindToFileStart().
Bool_t QwParameterFile::FileHasSectionHeader | ( | const std::string & | secname | ) |
Definition at line 582 of file QwParameterFile.cc.
References LineHasSectionHeader(), ReadNextLine(), and RewindToFileStart().
Referenced by QwSubsystemArray::ConstructBranch().
Bool_t QwParameterFile::FileHasSectionHeader | ( | const TString & | secname | ) |
Definition at line 570 of file QwParameterFile.cc.
References LineHasSectionHeader(), ReadNextLine(), and RewindToFileStart().
Bool_t QwParameterFile::FileHasVariablePair | ( | const std::string & | separatorchars, |
const std::string & | varname, | ||
std::string & | varvalue ) |
Definition at line 493 of file QwParameterFile.cc.
References HasVariablePair(), ReadNextLine(), and RewindToFileStart().
Referenced by FileHasVariablePair(), FileHasVariablePair(), and QwBlinder::QwBlinder().
|
inline |
Definition at line 155 of file QwParameterFile.h.
References ConvertValue(), and FileHasVariablePair().
Bool_t QwParameterFile::FileHasVariablePair | ( | const std::string & | separatorchars, |
const TString & | varname, | ||
TString & | varvalue ) |
Definition at line 482 of file QwParameterFile.cc.
References FileHasVariablePair().
|
private |
Find the first file in a directory that conforms to the run label.
Find the file in a directory with highest-scoring run label
directory | Directory to search in |
file_stem | File name stem to search for |
file_ext | File name extensions to search for |
best_path | (returns) Path to the highest-scoring file |
Definition at line 250 of file QwParameterFile.cc.
References QwLog::endl(), fCurrentRunNumber, ParseIntRange(), QwError, and QwWarning.
Referenced by QwParameterFile().
|
inlineprotected |
Current position in the line.
Definition at line 325 of file QwParameterFile.h.
References fKeyValuePair.
Referenced by PopValue(), and ReturnValue().
|
inline |
Definition at line 141 of file QwParameterFile.h.
References fLine.
Referenced by HasValue(), MQwMockable::LoadMockDataParameters(), QwBCM< T >::LoadMockDataParameters(), QwBPMStripline< T >::LoadMockDataParameters(), QwCombinedBCM< T >::LoadMockDataParameters(), QwCombinedBPM< T >::LoadMockDataParameters(), VQwDataHandler::ParseConfigFile(), ReadUntilNextModule(), and ReadUntilNextSection().
|
inline |
Definition at line 133 of file QwParameterFile.h.
References fTokenSepChars, and GetNextToken().
Referenced by GetNextToken(), and GetTypedNextToken().
std::string QwParameterFile::GetNextToken | ( | const std::string & | separatorchars | ) |
Get next token as a string.
Definition at line 739 of file QwParameterFile.cc.
References fCurrentPos, fLine, and TrimWhitespace().
Referenced by LRBCorrector::LoadChannelMap(), QwAlarmHandler::LoadChannelMap(), QwCorrelator::LoadChannelMap(), QwScaler::LoadChannelMap(), MQwMockable::LoadMockDataParameters(), QwBCM< T >::LoadMockDataParameters(), QwBPMStripline< T >::LoadMockDataParameters(), QwCombinedBCM< T >::LoadMockDataParameters(), and QwCombinedBPM< T >::LoadMockDataParameters().
TString QwParameterFile::GetParameterFileContents | ( | ) |
Definition at line 876 of file QwParameterFile.cc.
References fBestParamFileNameAndPath.
Referenced by GetParamFileNameContents().
|
inline |
Definition at line 206 of file QwParameterFile.h.
References fBestParamFileName.
Referenced by GetParamFileNameContents(), and QwMollerDetector::LoadChannelMap().
|
inline |
|
inline |
Definition at line 209 of file QwParameterFile.h.
References GetParameterFileContents(), and GetParamFilename().
Referenced by QwBeamLine::LoadChannelMap(), QwBeamMod::LoadChannelMap(), QwHelicity::LoadChannelMap(), QwScaler::LoadChannelMap(), VQwDetectorArray::LoadChannelMap(), VQwSubsystemParity::LoadEventCuts(), QwBeamLine::LoadGeometryDefinition(), QwBeamLine::LoadInputParameters(), QwScaler::LoadInputParameters(), VQwDetectorArray::LoadInputParameters(), QwBeamLine::LoadMockDataParameters(), and VQwDetectorArray::LoadMockDataParameters().
|
inline |
Get next token into specific type.
Definition at line 137 of file QwParameterFile.h.
References ConvertValue(), and GetNextToken().
Referenced by QwBeamLine::AssignGeometry(), QwHistogramHelper::GetHistParamsFromFile(), QwHistogramHelper::GetHistParamsFromLine(), QwBeamLine::LoadChannelMap(), QwEPICSEvent::LoadChannelMap(), QwHelicity::LoadChannelMap(), QwMollerDetector::LoadChannelMap(), QwScaler::LoadChannelMap(), VQwDetectorArray::LoadChannelMap(), QwBeamLine::LoadEventCuts_Line(), QwBeamMod::LoadEventCuts_Line(), VQwDetectorArray::LoadEventCuts_Line(), QwBeamLine::LoadGeometryDefinition(), QwBeamLine::LoadInputParameters(), QwBeamMod::LoadInputParameters(), QwScaler::LoadInputParameters(), VQwDetectorArray::LoadInputParameters(), MQwMockable::LoadMockDataParameters(), QwBCM< T >::LoadMockDataParameters(), QwBeamLine::LoadMockDataParameters(), QwBPMStripline< T >::LoadMockDataParameters(), QwCombinedBCM< T >::LoadMockDataParameters(), QwCombinedBPM< T >::LoadMockDataParameters(), VQwDetectorArray::LoadMockDataParameters(), QwBeamDetectorID::QwBeamDetectorID(), QwModChannelID::QwModChannelID(), and QwParameterFile::GetTypedNextToken< std::string >().
|
static |
Convert a string number value to an unsigned integer
varvalue | String with decimal or hexadecimal number |
Definition at line 53 of file QwParameterFile.cc.
Referenced by ConvertValue(), QwCombiner::LoadChannelMap(), QwScaler::LoadChannelMap(), VQwSubsystem::LoadDetectorMaps(), VQwSubsystemParity::LoadEventCuts(), and QwHelicityCorrelatedFeedback::LoadParameterFile().
|
inline |
Definition at line 222 of file QwParameterFile.h.
References fHasNewPairs.
Bool_t QwParameterFile::HasValue | ( | TString & | vname | ) |
Definition at line 424 of file QwParameterFile.cc.
References QwLog::endl(), GetLine(), QwMessage, ReadNextLine(), RewindToFileStart(), and TrimWhitespace().
Referenced by QwBCM< T >::ConstructBranch(), QwBPMCavity::ConstructBranch(), QwBPMStripline< T >::ConstructBranch(), QwClock< T >::ConstructBranch(), QwCombinedBPM< T >::ConstructBranch(), QwCombinedPMT::ConstructBranch(), QwEnergyCalculator::ConstructBranch(), QwHaloMonitor::ConstructBranch(), QwIntegrationPMT::ConstructBranch(), QwLinearDiodeArray::ConstructBranch(), QwQPD::ConstructBranch(), and VQwHardwareChannel::ConstructBranch().
Bool_t QwParameterFile::HasVariablePair | ( | const std::string & | separatorchars, |
std::string & | varname, | ||
std::string & | varvalue ) |
Definition at line 462 of file QwParameterFile.cc.
References fLine, and TrimWhitespace().
Referenced by QwEPICSEvent::ExtractEPICSValues(), FileHasVariablePair(), HasVariablePair(), QwBeamLine::LoadChannelMap(), QwBeamMod::LoadChannelMap(), QwEPICSEvent::LoadChannelMap(), QwMollerDetector::LoadChannelMap(), QwScaler::LoadChannelMap(), VQwSubsystem::LoadDetectorMaps(), VQwSubsystemParity::LoadEventCuts(), QwHelicityCorrelatedFeedback::LoadParameterFile(), ReadNextLine_Greedy(), and ReadNextLine_Single().
Bool_t QwParameterFile::HasVariablePair | ( | const std::string & | separatorchars, |
TString & | varname, | ||
TString & | varvalue ) |
Definition at line 448 of file QwParameterFile.cc.
References HasVariablePair().
|
inline |
Definition at line 129 of file QwParameterFile.h.
References fStream.
Referenced by QwHistogramHelper::LoadTreeParamsFromFile(), ReadNextModule(), ReadNextModule(), ReadNextSection(), and ReadNextSection().
TString QwParameterFile::LastString | ( | TString | in, |
char * | delim ) |
Definition at line 866 of file QwParameterFile.cc.
Referenced by SetParamFilename().
Bool_t QwParameterFile::LineHasModuleHeader | ( | ) |
Definition at line 539 of file QwParameterFile.cc.
References LineHasModuleHeader().
Referenced by FileHasModuleHeader(), FileHasModuleHeader(), LineHasModuleHeader(), LineHasModuleHeader(), ReadNextModule(), ReadNextModule(), and ReadUntilNextModule().
Bool_t QwParameterFile::LineHasModuleHeader | ( | std::string & | secname | ) |
Definition at line 553 of file QwParameterFile.cc.
References fLine, fModuleChars, TrimComment(), and TrimWhitespace().
Bool_t QwParameterFile::LineHasModuleHeader | ( | TString & | secname | ) |
Definition at line 545 of file QwParameterFile.cc.
References LineHasModuleHeader().
Bool_t QwParameterFile::LineHasSectionHeader | ( | ) |
Definition at line 509 of file QwParameterFile.cc.
References LineHasSectionHeader().
Referenced by FileHasSectionHeader(), FileHasSectionHeader(), LineHasSectionHeader(), LineHasSectionHeader(), ReadNextSection(), ReadNextSection(), ReadUntilNextSection(), and SkipSection().
Bool_t QwParameterFile::LineHasSectionHeader | ( | std::string & | secname | ) |
Definition at line 523 of file QwParameterFile.cc.
References fLine, fSectionChars, TrimComment(), and TrimWhitespace().
Bool_t QwParameterFile::LineHasSectionHeader | ( | TString & | secname | ) |
Definition at line 515 of file QwParameterFile.cc.
References LineHasSectionHeader().
|
inline |
Definition at line 128 of file QwParameterFile.h.
References fLine.
Referenced by QwHistogramHelper::GetHistParamsFromFile(), QwSubsystemArray::LoadAllEventRanges(), LRBCorrector::LoadChannelMap(), QwAlarmHandler::LoadChannelMap(), QwBeamMod::LoadChannelMap(), QwCorrelator::LoadChannelMap(), QwEPICSEvent::LoadChannelMap(), QwHelicity::LoadChannelMap(), QwMollerDetector::LoadChannelMap(), QwScaler::LoadChannelMap(), VQwDetectorArray::LoadChannelMap(), VQwSubsystemParity::LoadEventCuts(), QwBeamLine::LoadGeometryDefinition(), QwHistogramHelper::LoadHistParamsFromFile(), QwBeamLine::LoadInputParameters(), QwBeamMod::LoadInputParameters(), QwScaler::LoadInputParameters(), VQwDetectorArray::LoadInputParameters(), QwBeamLine::LoadMockDataParameters(), VQwDetectorArray::LoadMockDataParameters(), QwHelicityCorrelatedFeedback::LoadParameterFile(), and ReadNextLine_Greedy().
|
private |
Open a file.
Open a file at the specified location
file | Path to file to be opened |
Definition at line 194 of file QwParameterFile.cc.
References QwLog::endl(), fBestParamFileNameAndPath, fFile, fStream, QwError, and SetParamFilename().
Referenced by QwParameterFile().
|
static |
Parse an integer as #[kM] with optional metric scale factor.
Interpret an integer with optional scale factor.
value | String containing an integer with optional scale factor |
Definition at line 772 of file QwParameterFile.cc.
References QwLog::endl(), QwError, and QwVerbose.
Referenced by ParseIntRange().
|
static |
Parse a range of integers as #:# where either can be missing.
Separate a separated range of integers into a pair of values.
separatorchars | String with possible separator characters to consider. |
range | String containing two integers separated by a separator character, or a single value. If the string begins with the separator character, the first value is taken as zero. If the string ends with the separator character, the second value is taken as kMaxInt. |
Definition at line 815 of file QwParameterFile.cc.
References QwLog::endl(), ParseInt(), QwError, and QwVerbose.
Referenced by FindFile(), QwOptions::GetIntValuePair(), QwEventBuffer::GetNextEventRange(), QwEventBuffer::GetNextRunRange(), and QwSubsystemArray::LoadAllEventRanges().
|
inline |
Definition at line 238 of file QwParameterFile.h.
References ConvertValue(), and GetKeyValue().
Referenced by QwBeamLine::LoadChannelMap(), QwHelicity::LoadChannelMap(), VQwDetectorArray::LoadChannelMap(), LRBCorrector::ParseConfigFile(), QwAlarmHandler::ParseConfigFile(), QwCorrelator::ParseConfigFile(), VQwDataHandler::ParseConfigFile(), and VQwSubsystem::RegisterRocBankMarker().
|
inline |
Access the streambuf pointer in the same way as on a std::ifstream.
Definition at line 62 of file QwParameterFile.h.
References fStream.
Referenced by QwOptions::ParseConfigFile(), and ReadNextLine_Single().
std::unique_ptr< QwParameterFile > QwParameterFile::ReadModulePreamble | ( | ) |
Rewinds to the start and read until it finds next module header.
Read the lines until the first header
Definition at line 713 of file QwParameterFile.cc.
References ReadUntilNextModule(), and RewindToFileStart().
|
inline |
Definition at line 77 of file QwParameterFile.h.
References fCurrentPos, and ReadNextLine().
Referenced by QwEPICSEvent::ExtractEPICSValues(), FileHasModuleHeader(), FileHasModuleHeader(), FileHasSectionHeader(), FileHasSectionHeader(), FileHasVariablePair(), QwHistogramHelper::GetHistParamsFromFile(), HasValue(), QwSubsystemArray::LoadAllEventRanges(), LRBCorrector::LoadChannelMap(), QwAlarmHandler::LoadChannelMap(), QwBeamLine::LoadChannelMap(), QwBeamMod::LoadChannelMap(), QwCorrelator::LoadChannelMap(), QwEPICSEvent::LoadChannelMap(), QwHelicity::LoadChannelMap(), QwMollerDetector::LoadChannelMap(), QwScaler::LoadChannelMap(), VQwDetectorArray::LoadChannelMap(), VQwSubsystem::LoadDetectorMaps(), VQwSubsystemParity::LoadEventCuts(), QwBeamLine::LoadGeometryDefinition(), QwHistogramHelper::LoadHistParamsFromFile(), QwBeamLine::LoadInputParameters(), QwBeamMod::LoadInputParameters(), QwScaler::LoadInputParameters(), VQwDetectorArray::LoadInputParameters(), QwBeamLine::LoadMockDataParameters(), VQwDetectorArray::LoadMockDataParameters(), QwHelicityCorrelatedFeedback::LoadParameterFile(), VQwDataHandler::ParseConfigFile(), ReadNextLine(), ReadNextLine_Single(), ReadNextModule(), ReadNextModule(), ReadNextSection(), ReadNextSection(), ReadUntilNextModule(), ReadUntilNextSection(), and SkipSection().
|
inline |
Definition at line 82 of file QwParameterFile.h.
References fBeGreedy, ReadNextLine_Greedy(), and ReadNextLine_Single().
Bool_t QwParameterFile::ReadNextLine_Greedy | ( | std::string & | varvalue | ) |
Definition at line 897 of file QwParameterFile.cc.
References QwLog::endl(), fBreakpointWords, fHasNewPairs, fKeyValuePair, HasVariablePair(), LineIsEmpty(), QwDebug, ReadNextLine_Single(), RewindToLineStart(), TrimComment(), and TrimWhitespace().
Referenced by ReadNextLine().
|
inline |
Definition at line 89 of file QwParameterFile.h.
References fCurrentPos, fLine, fStream, HasVariablePair(), QwParameterFile(), rdbuf(), and ReadNextLine().
Referenced by ReadNextLine(), and ReadNextLine_Greedy().
|
inline |
Definition at line 198 of file QwParameterFile.h.
References ReadNextModule().
std::unique_ptr< QwParameterFile > QwParameterFile::ReadNextModule | ( | std::string & | secname, |
const bool | keep_header = false ) |
Read the lines of the next module
secname | Name of the next module (returns) |
keep_header | Flag to keep header of module |
Definition at line 725 of file QwParameterFile.cc.
References IsEOF(), LineHasModuleHeader(), ReadNextLine(), and ReadUntilNextModule().
Referenced by ReadNextModule().
std::unique_ptr< QwParameterFile > QwParameterFile::ReadNextModule | ( | TString & | secname, |
const bool | keep_header = false ) |
Definition at line 732 of file QwParameterFile.cc.
References IsEOF(), LineHasModuleHeader(), ReadNextLine(), and ReadUntilNextModule().
|
inline |
Definition at line 188 of file QwParameterFile.h.
References ReadNextSection().
std::unique_ptr< QwParameterFile > QwParameterFile::ReadNextSection | ( | std::string & | secname, |
const bool | keep_header = false ) |
Read the lines of the next section
secname | Name of the next section (returns) |
keep_header | Keep the header inside the section |
Definition at line 694 of file QwParameterFile.cc.
References IsEOF(), LineHasSectionHeader(), ReadNextLine(), and ReadUntilNextSection().
Referenced by QwBeamLine::LoadChannelMap(), QwCombiner::LoadChannelMap(), VQwDetectorArray::LoadChannelMap(), QwDataHandlerArray::LoadDataHandlersFromParameterFile(), QwPromptSummary::LoadElementsFromParameterFile(), QwSubsystemArrayParity::LoadMockDataParameters(), QwSubsystemArray::LoadSubsystemsFromParameterFile(), QwHistogramHelper::LoadTreeParamsFromFile(), and ReadNextSection().
std::unique_ptr< QwParameterFile > QwParameterFile::ReadNextSection | ( | TString & | secname, |
const bool | keep_header = false ) |
Definition at line 701 of file QwParameterFile.cc.
References IsEOF(), LineHasSectionHeader(), ReadNextLine(), and ReadUntilNextSection().
std::unique_ptr< QwParameterFile > QwParameterFile::ReadSectionPreamble | ( | ) |
Rewinds to the start and read until it finds next section header.
Read the lines until the first header
Definition at line 682 of file QwParameterFile.cc.
References ReadUntilNextSection(), and RewindToFileStart().
Referenced by QwSubsystemArray::ConstructBranch(), QwCombiner::LoadChannelMap(), QwDataHandlerArray::LoadDataHandlersFromParameterFile(), QwPromptSummary::LoadElementsFromParameterFile(), QwSubsystemArrayParity::LoadMockDataParameters(), and QwSubsystemArray::LoadSubsystemsFromParameterFile().
std::unique_ptr< QwParameterFile > QwParameterFile::ReadUntilNextModule | ( | const bool | add_current_line = false | ) |
Read from current position until next module header
Definition at line 637 of file QwParameterFile.cc.
References GetLine(), LineHasModuleHeader(), QwParameterFile(), and ReadNextLine().
Referenced by QwBeamLine::ConstructBranch(), QwCombinerSubsystem::ConstructBranch(), VQwDetectorArray::ConstructBranch(), ReadModulePreamble(), ReadNextModule(), and ReadNextModule().
std::unique_ptr< QwParameterFile > QwParameterFile::ReadUntilNextSection | ( | const bool | add_current_line = false | ) |
Read from current position until next section header
Definition at line 622 of file QwParameterFile.cc.
References GetLine(), LineHasSectionHeader(), QwParameterFile(), and ReadNextLine().
Referenced by QwSubsystemArray::ConstructBranch(), ReadNextSection(), ReadNextSection(), and ReadSectionPreamble().
|
inline |
Definition at line 229 of file QwParameterFile.h.
References ConvertValue(), and GetKeyValue().
Referenced by QwBeamLine::LoadChannelMap(), QwADC18_Channel::LoadChannelParameters(), QwMollerADC_Channel::LoadChannelParameters(), QwVQWK_Channel::LoadChannelParameters(), VQwScaler_Channel::LoadChannelParameters(), QwBeamDetectorID::QwBeamDetectorID(), and QwModChannelID::QwModChannelID().
|
inline |
Definition at line 144 of file QwParameterFile.h.
References fStream.
Referenced by QwBeamLine::ConstructBranch(), QwCombinerSubsystem::ConstructBranch(), VQwDetectorArray::ConstructBranch(), FileHasModuleHeader(), FileHasModuleHeader(), FileHasSectionHeader(), FileHasSectionHeader(), FileHasVariablePair(), HasValue(), QwBeamLine::LoadChannelMap(), QwCombiner::LoadChannelMap(), VQwDetectorArray::LoadChannelMap(), VQwSubsystem::LoadDetectorMaps(), VQwDataHandler::ParseConfigFile(), ReadModulePreamble(), and ReadSectionPreamble().
|
inline |
Definition at line 145 of file QwParameterFile.h.
References fCurrentPos.
Referenced by QwHistogramHelper::GetHistParamsFromFile(), and ReadNextLine_Greedy().
|
inline |
Set various sets of special characters.
Definition at line 71 of file QwParameterFile.h.
References fCommentChars.
Referenced by QwBeamLine::LoadChannelMap(), QwBeamMod::LoadChannelMap(), QwHelicity::LoadChannelMap(), QwScaler::LoadChannelMap(), and VQwDetectorArray::LoadChannelMap().
|
inlinestatic |
Set the current run number for looking up the appropriate parameter file.
Definition at line 68 of file QwParameterFile.h.
References fCurrentRunNumber.
Referenced by main().
|
inlineprivate |
Definition at line 375 of file QwParameterFile.h.
References fStream.
Referenced by QwParameterFile().
|
inline |
Definition at line 75 of file QwParameterFile.h.
References fModuleChars.
void QwParameterFile::SetParamFilename | ( | ) |
Definition at line 858 of file QwParameterFile.cc.
References fBestParamFileName, fBestParamFileNameAndPath, and LastString().
Referenced by OpenFile().
|
inline |
Definition at line 74 of file QwParameterFile.h.
References fSectionChars.
|
inline |
Definition at line 73 of file QwParameterFile.h.
References fTokenSepChars.
|
inline |
Definition at line 72 of file QwParameterFile.h.
References fWhitespaceChars.
Bool_t QwParameterFile::SkipSection | ( | std::string | secname | ) |
Skips from the beginning of the section 'secname' until the first section that does not have that name.
Definition at line 648 of file QwParameterFile.cc.
References QwLog::endl(), LineHasSectionHeader(), QwDebug, ReadNextLine(), and SkipSection().
Referenced by QwBeamLine::LoadChannelMap(), and SkipSection().
|
protected |
Definition at line 365 of file QwParameterFile.cc.
Referenced by TrimModuleHeader(), TrimSectionHeader(), and TrimWhitespace().
|
inline |
Definition at line 121 of file QwParameterFile.h.
References fCommentChars, and TrimComment().
Referenced by LineHasModuleHeader(), LineHasSectionHeader(), ReadNextLine_Greedy(), TrimComment(), and TrimComment().
void QwParameterFile::TrimComment | ( | const char | commentchar | ) |
Definition at line 395 of file QwParameterFile.cc.
References TrimComment().
Referenced by QwHistogramHelper::GetHistParamsFromFile(), QwSubsystemArray::LoadAllEventRanges(), LRBCorrector::LoadChannelMap(), QwAlarmHandler::LoadChannelMap(), QwCorrelator::LoadChannelMap(), QwEPICSEvent::LoadChannelMap(), QwMollerDetector::LoadChannelMap(), QwScaler::LoadChannelMap(), VQwDetectorArray::LoadChannelMap(), VQwSubsystem::LoadDetectorMaps(), VQwSubsystemParity::LoadEventCuts(), QwBeamLine::LoadGeometryDefinition(), QwHistogramHelper::LoadHistParamsFromFile(), QwBeamLine::LoadInputParameters(), QwBeamMod::LoadInputParameters(), QwScaler::LoadInputParameters(), VQwDetectorArray::LoadInputParameters(), QwBeamLine::LoadMockDataParameters(), VQwDetectorArray::LoadMockDataParameters(), and QwHelicityCorrelatedFeedback::LoadParameterFile().
void QwParameterFile::TrimComment | ( | const std::string & | commentchars | ) |
Definition at line 402 of file QwParameterFile.cc.
References fLine.
void QwParameterFile::TrimModuleHeader | ( | ) |
Definition at line 417 of file QwParameterFile.cc.
References fLine, fModuleChars, and Trim().
void QwParameterFile::TrimSectionHeader | ( | ) |
Definition at line 411 of file QwParameterFile.cc.
References fLine, fSectionChars, and Trim().
|
protected |
Definition at line 388 of file QwParameterFile.cc.
References fWhitespaceChars, and Trim().
void QwParameterFile::TrimWhitespace | ( | TString::EStripType | head_tail = TString::kBoth | ) |
Definition at line 357 of file QwParameterFile.cc.
References fLine, and TrimWhitespace().
Referenced by QwEPICSEvent::ExtractEPICSValues(), QwHistogramHelper::GetHistParamsFromFile(), GetNextToken(), HasValue(), HasVariablePair(), LineHasModuleHeader(), LineHasSectionHeader(), QwSubsystemArray::LoadAllEventRanges(), LRBCorrector::LoadChannelMap(), QwAlarmHandler::LoadChannelMap(), QwBeamMod::LoadChannelMap(), QwCorrelator::LoadChannelMap(), QwEPICSEvent::LoadChannelMap(), QwHelicity::LoadChannelMap(), QwMollerDetector::LoadChannelMap(), QwScaler::LoadChannelMap(), VQwDetectorArray::LoadChannelMap(), VQwSubsystem::LoadDetectorMaps(), VQwSubsystemParity::LoadEventCuts(), QwBeamLine::LoadGeometryDefinition(), QwHistogramHelper::LoadHistParamsFromFile(), QwBeamLine::LoadInputParameters(), QwBeamMod::LoadInputParameters(), QwScaler::LoadInputParameters(), VQwDetectorArray::LoadInputParameters(), QwBeamLine::LoadMockDataParameters(), VQwDetectorArray::LoadMockDataParameters(), QwHelicityCorrelatedFeedback::LoadParameterFile(), ReadNextLine_Greedy(), and TrimWhitespace().
|
friend |
Definition at line 757 of file QwParameterFile.cc.
References fStream, and QwParameterFile().
|
protected |
Definition at line 341 of file QwParameterFile.h.
Referenced by DisableGreediness(), EnableGreediness(), QwParameterFile(), QwParameterFile(), QwParameterFile(), QwParameterFile(), and ReadNextLine().
|
private |
Definition at line 280 of file QwParameterFile.h.
Referenced by GetParamFilename(), and SetParamFilename().
|
private |
Definition at line 281 of file QwParameterFile.h.
Referenced by GetParameterFileContents(), GetParamFilenameAndPath(), OpenFile(), and SetParamFilename().
|
protected |
Definition at line 342 of file QwParameterFile.h.
Referenced by AddBreakpointKeyword(), and ReadNextLine_Greedy().
|
protected |
Definition at line 307 of file QwParameterFile.h.
Referenced by QwParameterFile(), QwParameterFile(), QwParameterFile(), QwParameterFile(), SetCommentChars(), and TrimComment().
|
protected |
Internal line storage.
Definition at line 321 of file QwParameterFile.h.
Referenced by GetNextToken(), QwParameterFile(), QwParameterFile(), ReadNextLine(), ReadNextLine_Single(), and RewindToLineStart().
|
staticprotected |
Definition at line 297 of file QwParameterFile.h.
Referenced by FindFile(), and SetCurrentRunNumber().
|
protected |
Definition at line 316 of file QwParameterFile.h.
Referenced by Close(), and OpenFile().
|
protected |
Definition at line 315 of file QwParameterFile.h.
Referenced by QwParameterFile(), QwParameterFile(), QwParameterFile(), and QwParameterFile().
|
protected |
Definition at line 344 of file QwParameterFile.h.
Referenced by HasNewPairs(), QwParameterFile(), QwParameterFile(), and ReadNextLine_Greedy().
|
protected |
Definition at line 343 of file QwParameterFile.h.
Referenced by GetKeyValue(), and ReadNextLine_Greedy().
|
protected |
Definition at line 320 of file QwParameterFile.h.
Referenced by GetLine(), GetNextToken(), HasVariablePair(), LineHasModuleHeader(), LineHasSectionHeader(), LineIsEmpty(), ReadNextLine_Single(), TrimComment(), TrimModuleHeader(), TrimSectionHeader(), and TrimWhitespace().
|
protected |
Definition at line 311 of file QwParameterFile.h.
Referenced by LineHasModuleHeader(), QwParameterFile(), QwParameterFile(), QwParameterFile(), QwParameterFile(), SetModuleChars(), and TrimModuleHeader().
|
staticprotected |
Definition at line 294 of file QwParameterFile.h.
Referenced by AppendToSearchPath(), and QwParameterFile().
|
protected |
Definition at line 310 of file QwParameterFile.h.
Referenced by LineHasSectionHeader(), QwParameterFile(), QwParameterFile(), QwParameterFile(), QwParameterFile(), SetSectionChars(), and TrimSectionHeader().
|
protected |
Definition at line 317 of file QwParameterFile.h.
Referenced by AddLine(), IsEOF(), OpenFile(), operator<<, QwParameterFile(), rdbuf(), ReadNextLine_Single(), RewindToFileStart(), and SetEOF().
|
protected |
Definition at line 309 of file QwParameterFile.h.
Referenced by GetNextToken(), QwParameterFile(), QwParameterFile(), QwParameterFile(), QwParameterFile(), and SetTokenSepChars().
|
protected |
Definition at line 308 of file QwParameterFile.h.
Referenced by QwParameterFile(), QwParameterFile(), QwParameterFile(), QwParameterFile(), SetWhitespaceChars(), and TrimWhitespace().
|
staticprotected |
Definition at line 300 of file QwParameterFile.h.
Referenced by QwParameterFile(), QwParameterFile(), and QwParameterFile().
|
staticprotected |
Definition at line 304 of file QwParameterFile.h.
Referenced by QwParameterFile(), QwParameterFile(), and QwParameterFile().
|
staticprotected |
Definition at line 303 of file QwParameterFile.h.
Referenced by QwParameterFile(), QwParameterFile(), and QwParameterFile().
|
staticprotected |
Definition at line 302 of file QwParameterFile.h.
Referenced by QwParameterFile(), QwParameterFile(), and QwParameterFile().
|
staticprotected |
Definition at line 301 of file QwParameterFile.h.
Referenced by QwParameterFile(), QwParameterFile(), and QwParameterFile().