summaryrefslogtreecommitdiff
path: root/src/base
diff options
context:
space:
mode:
authorAndrew Bardsley <Andrew.Bardsley@arm.com>2014-09-20 17:17:47 -0400
committerAndrew Bardsley <Andrew.Bardsley@arm.com>2014-09-20 17:17:47 -0400
commitb2c2e67468bba6dbbbfb6856ca94fdcfa1492258 (patch)
tree3f5d7326ec9c4b88e1a9b40331acf1b8b0ebc6be /src/base
parente553ca67d419f62098acdba68c3b48eba769dcc5 (diff)
downloadgem5-b2c2e67468bba6dbbbfb6856ca94fdcfa1492258.tar.xz
base: Add getSectionNames to IniFile
Add an accessor to IniFile to list all the sections in the file.
Diffstat (limited to 'src/base')
-rw-r--r--src/base/inifile.cc10
-rw-r--r--src/base/inifile.hh3
2 files changed, 13 insertions, 0 deletions
diff --git a/src/base/inifile.cc b/src/base/inifile.cc
index 011887635..402c6469f 100644
--- a/src/base/inifile.cc
+++ b/src/base/inifile.cc
@@ -280,6 +280,16 @@ IniFile::Section::printUnreferenced(const string &sectionName)
}
+void
+IniFile::getSectionNames(vector<string> &list) const
+{
+ for (SectionTable::const_iterator i = table.begin();
+ i != table.end(); ++i)
+ {
+ list.push_back((*i).first);
+ }
+}
+
bool
IniFile::printUnreferenced()
{
diff --git a/src/base/inifile.hh b/src/base/inifile.hh
index 83cf80cf0..c2d263619 100644
--- a/src/base/inifile.hh
+++ b/src/base/inifile.hh
@@ -192,6 +192,9 @@ class IniFile
/// @return True if the section exists.
bool sectionExists(const std::string &section) const;
+ /// Push all section names into the given vector
+ void getSectionNames(std::vector<std::string> &list) const;
+
/// Print unreferenced entries in object. Iteratively calls
/// printUnreferend() on all the constituent sections.
bool printUnreferenced();