Commit e358c853 authored by Pawel Sznajder's avatar Pawel Sznajder
Browse files

add functions to check if a given property set via prop. file

parent 4044e1e3
......@@ -42,6 +42,10 @@ public:
std::string getString(const std::string & section, const std::string & key);
std::string getString(const std::string & key);
bool checkIfAvailable(const std::string & section,
const std::string & key) const;
bool checkIfAvailable(const std::string & key) const;
std::string getPropertiesFilePath() const;
private:
......
......@@ -15,7 +15,6 @@
namespace ElemUtils {
/**
* @class IniFileParser
* @brief
......@@ -39,9 +38,14 @@ public:
void parse(const std::string & configFilePath);
std::map<std::string, std::string> getValues();
std::string getString(const std::string & key);
std::string getString(const std::string & section, const std::string & key);
bool checkIfAvailable(const std::string & section,
const std::string & key) const;
bool checkIfAvailable(const std::string & key) const;
const std::string& getFilePath() const;
private:
......@@ -57,7 +61,7 @@ private:
void analyseValue(const std::string & fileLine,
const std::string & sectionName);
std::string makeKey(const std::string & sectionName,
const std::string & key);
const std::string & key) const;
};
} // namespace ElemUtils
......
......@@ -60,6 +60,20 @@ std::string PropertiesManager::getString(const std::string & key) {
return m_iniFileParser.getString(key);
} // mutex.unlock()
bool PropertiesManager::checkIfAvailable(const std::string & section,
const std::string & key) const {
sf::Lock lock(m_mutex); // mutex.lock()
return m_iniFileParser.checkIfAvailable(section, key);
} // mutex.unlock()
bool PropertiesManager::checkIfAvailable(const std::string & key) const {
sf::Lock lock(m_mutex); // mutex.lock()
return m_iniFileParser.checkIfAvailable(key);
} // mutex.unlock()
} // namespace ElemUtils
std::string ElemUtils::PropertiesManager::getPropertiesFilePath() const {
......
......@@ -122,7 +122,7 @@ void IniFileParser::analyseValue(const std::string & fileLine,
}
std::string IniFileParser::makeKey(const std::string & sectionName,
const std::string & key) {
const std::string & key) const {
// if the section's name is empty then returns only the key
// else returns the section name concatenated with the value of the key
return (sectionName == StringUtils::EMPTY) ?
......@@ -151,6 +151,15 @@ std::string IniFileParser::getString(const std::string & section,
<< "\" in file \"" << m_filePath << "\"");
}
bool IniFileParser::checkIfAvailable(const std::string & section,
const std::string & key) const {
return (m_values.find(makeKey(section, key)) != m_values.end());
}
bool IniFileParser::checkIfAvailable(const std::string & key) const {
return (m_values.find(makeKey(StringUtils::EMPTY, key)) != m_values.end());
}
std::map<std::string, std::string> IniFileParser::getValues() {
return m_values;
}
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment