gem5
v20.1.0.0
|
This class represents the contents of a ".ini" file. More...
#include <inifile.hh>
Classes | |
class | Entry |
A single key/value pair. More... | |
class | Section |
A section. More... | |
Public Member Functions | |
IniFile () | |
Constructor. More... | |
~IniFile () | |
Destructor. More... | |
bool | load (std::istream &f) |
Load parameter settings from given istream. More... | |
bool | load (const std::string &file) |
Load the specified file. More... | |
bool | add (const std::string &s) |
Take string of the form "<section>:<parameter>=<value>" or "<section>:<parameter>+=<value>" and add to database. More... | |
bool | find (const std::string §ion, const std::string &entry, std::string &value) const |
Find value corresponding to given section and entry names. More... | |
bool | entryExists (const std::string §ion, const std::string &entry) const |
Determine whether the entry exists within named section exists in the .ini file. More... | |
bool | sectionExists (const std::string §ion) const |
Determine whether the named section exists in the .ini file. More... | |
void | getSectionNames (std::vector< std::string > &list) const |
Push all section names into the given vector. More... | |
bool | printUnreferenced () |
Print unreferenced entries in object. More... | |
void | dump () |
Dump contents to cout. For debugging. More... | |
Protected Types | |
typedef std::unordered_map< std::string, Section * > | SectionTable |
SectionTable type. Map of strings to Section object pointers. More... | |
Protected Member Functions | |
Section * | addSection (const std::string §ionName) |
Look up section with the given name, creating a new section if not found. More... | |
Section * | findSection (const std::string §ionName) const |
Look up section with the given name. More... | |
Protected Attributes | |
SectionTable | table |
Hash of section names to Section object pointers. More... | |
This class represents the contents of a ".ini" file.
It's basically a two level lookup table: a set of named sections, where each section is a set of key/value pairs. Section names, keys, and values are all uninterpreted strings.
Definition at line 51 of file inifile.hh.
|
protected |
SectionTable type. Map of strings to Section object pointers.
Definition at line 138 of file inifile.hh.
IniFile::IniFile | ( | ) |
Constructor.
Definition at line 41 of file inifile.cc.
IniFile::~IniFile | ( | ) |
bool IniFile::add | ( | const std::string & | s | ) |
Take string of the form "<section>:<parameter>=<value>" or "<section>:<parameter>+=<value>" and add to database.
True | if successful, false if parse error. |
Definition at line 161 of file inifile.cc.
References eat_white(), ArmISA::offset, and ArmISA::s.
|
protected |
Look up section with the given name, creating a new section if not found.
Pointer | to section object. |
Definition at line 133 of file inifile.cc.
References ArmISA::i.
void IniFile::dump | ( | ) |
Dump contents to cout. For debugging.
Definition at line 341 of file inifile.cc.
References ArmISA::i.
bool IniFile::entryExists | ( | const std::string & | section, |
const std::string & | entry | ||
) | const |
Determine whether the entry exists within named section exists in the .ini file.
Definition at line 231 of file inifile.cc.
References IniFile::Section::findEntry().
Referenced by CheckpointIn::entryExists().
bool IniFile::find | ( | const std::string & | section, |
const std::string & | entry, | ||
std::string & | value | ||
) | const |
Find value corresponding to given section and entry names.
Value is returned by reference in 'value' param.
True | if found, false if not. |
Definition at line 214 of file inifile.cc.
References IniFile::Section::findEntry(), and IniFile::Entry::getValue().
Referenced by CheckpointIn::find(), CheckpointIn::findObj(), CxxIniFile::getParam(), CxxIniFile::getParamVector(), and TEST().
|
protected |
Look up section with the given name.
Pointer | to section object, or NULL if not found. |
Definition at line 150 of file inifile.cc.
References ArmISA::i.
void IniFile::getSectionNames | ( | std::vector< std::string > & | list | ) | const |
Push all section names into the given vector.
Definition at line 293 of file inifile.cc.
References ArmISA::i.
Referenced by CxxIniFile::getAllObjectNames().
bool IniFile::load | ( | const std::string & | file | ) |
Load the specified file.
Parameter settings found in the file will be merged with any already defined in this object.
file | The path of the file to load. |
True | if successful, false if errors were encountered. |
bool IniFile::load | ( | std::istream & | f | ) |
Load parameter settings from given istream.
This is a helper function for load(string) and loadCPP(), which open a file and then pass it here.
True | if successful, false if errors were encountered. |
Referenced by CheckpointIn::CheckpointIn(), CxxIniFile::load(), and TEST().
bool IniFile::printUnreferenced | ( | ) |
Print unreferenced entries in object.
Iteratively calls printUnreferend() on all the constituent sections.
Definition at line 303 of file inifile.cc.
References IniFile::Section::findEntry(), ArmISA::i, IniFile::Section::isReferenced(), and IniFile::Section::printUnreferenced().
bool IniFile::sectionExists | ( | const std::string & | section | ) | const |
Determine whether the named section exists in the .ini file.
Note that the 'Section' class is (intentionally) not public, so all clients can do is get a bool that says whether there are any values in that section or not.
Definition at line 242 of file inifile.cc.
Referenced by CxxIniFile::objectExists(), and CheckpointIn::sectionExists().
|
protected |
Hash of section names to Section object pointers.
Definition at line 142 of file inifile.hh.