gem5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Classes | Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | List of all members
IniFile Class Reference

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 &section, const std::string &entry, std::string &value) const
 Find value corresponding to given section and entry names. More...
 
bool entryExists (const std::string &section, const std::string &entry) const
 Determine whether the entry exists within named section exists in the .ini file. More...
 
bool sectionExists (const std::string &section) 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

SectionaddSection (const std::string &sectionName)
 Look up section with the given name, creating a new section if not found. More...
 
SectionfindSection (const std::string &sectionName) const
 Look up section with the given name. More...
 

Protected Attributes

SectionTable table
 Hash of section names to Section object pointers. More...
 

Detailed Description

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 54 of file inifile.hh.

Member Typedef Documentation

typedef std::unordered_map<std::string, Section *> IniFile::SectionTable
protected

SectionTable type. Map of strings to Section object pointers.

Definition at line 141 of file inifile.hh.

Constructor & Destructor Documentation

IniFile::IniFile ( )

Constructor.

Definition at line 44 of file inifile.cc.

IniFile::~IniFile ( )

Destructor.

Definition at line 47 of file inifile.cc.

References ArmISA::i.

Member Function Documentation

bool IniFile::add ( const std::string &  s)

Take string of the form "<section>:<parameter>=<value>" or "<section>:<parameter>+=<value>" and add to database.

Return values
Trueif successful, false if parse error.

Definition at line 164 of file inifile.cc.

References IniFile::Section::add(), eat_white(), ArmISA::offset, and ArmISA::s.

Referenced by main().

IniFile::Section * IniFile::addSection ( const std::string &  sectionName)
protected

Look up section with the given name, creating a new section if not found.

Return values
Pointerto section object.

Definition at line 136 of file inifile.cc.

References ArmISA::i.

void IniFile::dump ( )

Dump contents to cout. For debugging.

Definition at line 344 of file inifile.cc.

References ArmISA::i.

Referenced by main().

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.

Returns
True if the section exists.

Definition at line 234 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.

Return values
Trueif found, false if not.

Definition at line 217 of file inifile.cc.

References IniFile::Section::findEntry(), and IniFile::Entry::getValue().

Referenced by CheckpointIn::find(), CheckpointIn::findObj(), CxxIniFile::getParam(), and CxxIniFile::getParamVector().

IniFile::Section * IniFile::findSection ( const std::string &  sectionName) const
protected

Look up section with the given name.

Return values
Pointerto section object, or NULL if not found.

Definition at line 153 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 296 of file inifile.cc.

References ArmISA::i.

Referenced by CxxIniFile::getAllObjectNames().

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.

Return values
Trueif successful, false if errors were encountered.

Referenced by CheckpointIn::CheckpointIn(), CxxIniFile::load(), and main().

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.

Parameters
fileThe path of the file to load.
Return values
Trueif successful, false if errors were encountered.
bool IniFile::printUnreferenced ( )

Print unreferenced entries in object.

Iteratively calls printUnreferend() on all the constituent sections.

Definition at line 306 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.

Returns
True if the section exists.

Definition at line 245 of file inifile.cc.

Referenced by CxxIniFile::objectExists(), and CheckpointIn::sectionExists().

Member Data Documentation

SectionTable IniFile::table
protected

Hash of section names to Section object pointers.

Definition at line 145 of file inifile.hh.


The documentation for this class was generated from the following files:

Generated on Fri Jun 9 2017 13:04:13 for gem5 by doxygen 1.8.6