From 822cf2bcbfa1e412f02144453a266ec37f360c52 Mon Sep 17 00:00:00 2001 From: Lioncash Date: Wed, 19 Aug 2015 22:22:28 -0400 Subject: [PATCH] IniFile: Mark getter functions as const --- Source/Core/Common/IniFile.cpp | 43 +++++++++++++++++++++++----------- Source/Core/Common/IniFile.h | 15 ++++++------ 2 files changed, 36 insertions(+), 22 deletions(-) diff --git a/Source/Core/Common/IniFile.cpp b/Source/Core/Common/IniFile.cpp index 9ea8f50533..0c53d9569e 100644 --- a/Source/Core/Common/IniFile.cpp +++ b/Source/Core/Common/IniFile.cpp @@ -72,7 +72,7 @@ void IniFile::Section::Set(const std::string& key, const std::vector* out) +bool IniFile::Section::Get(const std::string& key, std::vector* out) const { std::string temp; bool retval = Get(key, &temp); @@ -97,69 +97,84 @@ bool IniFile::Section::Get(const std::string& key, std::vector* out { return false; } - // ignore starting , if any + + // ignore starting comma, if any size_t subStart = temp.find_first_not_of(","); - // split by , + // split by comma while (subStart != std::string::npos) { - // Find next , + // Find next comma size_t subEnd = temp.find(',', subStart); if (subStart != subEnd) - // take from first char until next , + { + // take from first char until next comma out->push_back(StripSpaces(temp.substr(subStart, subEnd - subStart))); - // Find the next non , char + } + + // Find the next non-comma char subStart = temp.find_first_not_of(",", subEnd); } + return true; } -bool IniFile::Section::Get(const std::string& key, int* value, int defaultValue) +bool IniFile::Section::Get(const std::string& key, int* value, int defaultValue) const { std::string temp; bool retval = Get(key, &temp); + if (retval && TryParse(temp, value)) return true; + *value = defaultValue; return false; } -bool IniFile::Section::Get(const std::string& key, u32* value, u32 defaultValue) +bool IniFile::Section::Get(const std::string& key, u32* value, u32 defaultValue) const { std::string temp; bool retval = Get(key, &temp); + if (retval && TryParse(temp, value)) return true; + *value = defaultValue; return false; } -bool IniFile::Section::Get(const std::string& key, bool* value, bool defaultValue) +bool IniFile::Section::Get(const std::string& key, bool* value, bool defaultValue) const { std::string temp; bool retval = Get(key, &temp); + if (retval && TryParse(temp, value)) return true; + *value = defaultValue; return false; } -bool IniFile::Section::Get(const std::string& key, float* value, float defaultValue) +bool IniFile::Section::Get(const std::string& key, float* value, float defaultValue) const { std::string temp; bool retval = Get(key, &temp); + if (retval && TryParse(temp, value)) return true; + *value = defaultValue; return false; } -bool IniFile::Section::Get(const std::string& key, double* value, double defaultValue) +bool IniFile::Section::Get(const std::string& key, double* value, double defaultValue) const { std::string temp; bool retval = Get(key, &temp); + if (retval && TryParse(temp, value)) return true; + *value = defaultValue; return false; } diff --git a/Source/Core/Common/IniFile.h b/Source/Core/Common/IniFile.h index fc39e783cc..29a6ddba8c 100644 --- a/Source/Core/Common/IniFile.h +++ b/Source/Core/Common/IniFile.h @@ -38,8 +38,6 @@ public: void Set(const std::string& key, const std::string& newValue); void Set(const std::string& key, const std::string& newValue, const std::string& defaultValue); - bool Get(const std::string& key, std::string* value, const std::string& defaultValue = NULL_STRING); - void Set(const std::string& key, u32 newValue) { Set(key, StringFromFormat("0x%08x", newValue)); @@ -76,12 +74,13 @@ public: void Set(const std::string& key, const std::vector& newValues); - bool Get(const std::string& key, int* value, int defaultValue = 0); - bool Get(const std::string& key, u32* value, u32 defaultValue = 0); - bool Get(const std::string& key, bool* value, bool defaultValue = false); - bool Get(const std::string& key, float* value, float defaultValue = false); - bool Get(const std::string& key, double* value, double defaultValue = false); - bool Get(const std::string& key, std::vector* values); + bool Get(const std::string& key, std::string* value, const std::string& defaultValue = NULL_STRING) const; + bool Get(const std::string& key, int* value, int defaultValue = 0) const; + bool Get(const std::string& key, u32* value, u32 defaultValue = 0) const; + bool Get(const std::string& key, bool* value, bool defaultValue = false) const; + bool Get(const std::string& key, float* value, float defaultValue = 0.0f) const; + bool Get(const std::string& key, double* value, double defaultValue = 0.0) const; + bool Get(const std::string& key, std::vector* values) const; bool operator < (const Section& other) const {