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: ...@@ -42,6 +42,10 @@ public:
std::string getString(const std::string & section, const std::string & key); std::string getString(const std::string & section, const std::string & key);
std::string getString(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; std::string getPropertiesFilePath() const;
private: private:
......
...@@ -15,7 +15,6 @@ ...@@ -15,7 +15,6 @@
namespace ElemUtils { namespace ElemUtils {
/** /**
* @class IniFileParser * @class IniFileParser
* @brief * @brief
...@@ -39,9 +38,14 @@ public: ...@@ -39,9 +38,14 @@ public:
void parse(const std::string & configFilePath); void parse(const std::string & configFilePath);
std::map<std::string, std::string> getValues(); std::map<std::string, std::string> getValues();
std::string getString(const std::string & key); std::string getString(const std::string & key);
std::string getString(const std::string & section, 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; const std::string& getFilePath() const;
private: private:
...@@ -57,7 +61,7 @@ private: ...@@ -57,7 +61,7 @@ private:
void analyseValue(const std::string & fileLine, void analyseValue(const std::string & fileLine,
const std::string & sectionName); const std::string & sectionName);
std::string makeKey(const std::string & sectionName, std::string makeKey(const std::string & sectionName,
const std::string & key); const std::string & key) const;
}; };
} // namespace ElemUtils } // namespace ElemUtils
......
...@@ -60,6 +60,20 @@ std::string PropertiesManager::getString(const std::string & key) { ...@@ -60,6 +60,20 @@ std::string PropertiesManager::getString(const std::string & key) {
return m_iniFileParser.getString(key); return m_iniFileParser.getString(key);
} // mutex.unlock() } // 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 } // namespace ElemUtils
std::string ElemUtils::PropertiesManager::getPropertiesFilePath() const { std::string ElemUtils::PropertiesManager::getPropertiesFilePath() const {
......
...@@ -122,7 +122,7 @@ void IniFileParser::analyseValue(const std::string & fileLine, ...@@ -122,7 +122,7 @@ void IniFileParser::analyseValue(const std::string & fileLine,
} }
std::string IniFileParser::makeKey(const std::string & sectionName, 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 // if the section's name is empty then returns only the key
// else returns the section name concatenated with the value of the key // else returns the section name concatenated with the value of the key
return (sectionName == StringUtils::EMPTY) ? return (sectionName == StringUtils::EMPTY) ?
...@@ -151,6 +151,15 @@ std::string IniFileParser::getString(const std::string & section, ...@@ -151,6 +151,15 @@ std::string IniFileParser::getString(const std::string & section,
<< "\" in file \"" << m_filePath << "\""); << "\" 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() { std::map<std::string, std::string> IniFileParser::getValues() {
return m_values; 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