47 typedef std::multimap<std::string,
48 std::pair<std::string, std::size_t> >
KeyMap;
49 typedef std::pair<KeyMap::const_iterator,
51 typedef std::map<std::string,
61 std::string
operator[](std::string
const& keyword)
const;
69 std::string
const&
fileName =
"input.nn");
82 std::string
const& keyword,
83 bool exact =
false)
const;
91 std::string
keywordCheck(std::string
const& keyword)
const;
101 std::string
getValue(std::string
const& keyword)
const;
127 std::vector<std::string>
info()
const;
139 std::ofstream*
const& file,
140 std::map<std::size_t,
141 std::string>
const& replacements
148 std::vector<std::string>
log;
Reads and analyzes settings file and stores parameters.
std::vector< std::string > info() const
Get logged information about settings file.
std::string keywordCheck(std::string const &keyword) const
Check for keyword and alternatives, throw exception if not present.
static KeywordList knownKeywords
Map containing all known keywords and a description.
void writeSettingsFile(std::ofstream *const &file, std::map< std::size_t, std::string > const &replacements={}) const
Write complete settings file.
bool keywordExists(std::string const &keyword, bool exact=false) const
Check if keyword is present in settings file.
std::size_t loadFile(std::string const &fileName="input.nn")
Load a file with settings.
std::vector< std::string > log
Vector with log lines.
KeyRange getValues(std::string const &keyword) const
Get all keyword-value pairs for given keyword.
std::vector< std::string > lines
Vector of all lines in settings file.
std::string getValue(std::string const &keyword) const
Get value for given keyword.
std::vector< std::string > getSettingsLines() const
Get complete settings file.
std::pair< KeyMap::const_iterator, KeyMap::const_iterator > KeyRange
std::map< std::string, std::shared_ptr< Key > > const KeywordList
std::size_t parseLines()
Parse lines and create contents map.
std::string fileName
Settings file name.
void readFile()
Read file once and save all lines in lines vector.
KeyMap contents
Map containing all keyword-value pairs.
std::pair< std::size_t, std::size_t > sanityCheck()
Check if all keywords are in known-keywords database and for duplicates.
std::multimap< std::string, std::pair< std::string, std::size_t > > KeyMap
std::string operator[](std::string const &keyword) const
Overload [] operator.
std::vector< std::string > words
Alternative keywords (first entry is main name).
std::string description
A short description of the keyword.
bool isUnique() const
Whether this keyword has no alternative definitions or spellings.