diff options
| author | Léo Lam <leo@innovatetechnologi.es> | 2019-07-21 15:13:27 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2019-07-21 15:13:27 +0800 |
| commit | 1ed7cc260bd7eee2919aa29edfaa69cf365c5d97 (patch) | |
| tree | d02b4f6590b0a7f293e27f334054cab033a890f8 /Source/Core/Common/SettingsHandler.cpp | |
| parent | fc8859a4148ba73100c4e3cfd6729c187543ddde (diff) | |
| parent | 13a454d603d379d6980d501cf117f5a61264d548 (diff) | |
Merge pull request #8248 from lioncash/settings
Common/SettingsHandler: Use std::string_view where applicable
Diffstat (limited to 'Source/Core/Common/SettingsHandler.cpp')
| -rw-r--r-- | Source/Core/Common/SettingsHandler.cpp | 23 |
1 files changed, 11 insertions, 12 deletions
diff --git a/Source/Core/Common/SettingsHandler.cpp b/Source/Core/Common/SettingsHandler.cpp index e7292438ef..e7b3d5d066 100644 --- a/Source/Core/Common/SettingsHandler.cpp +++ b/Source/Core/Common/SettingsHandler.cpp @@ -9,9 +9,10 @@ #include <cstddef> #include <ctime> #include <iomanip> -#include <sstream> #include <string> +#include <fmt/time.h> + #include "Common/CommonTypes.h" namespace Common @@ -38,27 +39,27 @@ void SettingsHandler::SetBytes(Buffer&& buffer) Decrypt(); } -std::string SettingsHandler::GetValue(const std::string& key) const +std::string SettingsHandler::GetValue(std::string_view key) const { - std::string delim = std::string("\r\n"); - std::string toFind = delim + key + "="; + constexpr char delim[] = "\r\n"; + std::string toFind = std::string(delim).append(key).append("="); size_t found = decoded.find(toFind); - if (found != decoded.npos) + if (found != std::string_view::npos) { size_t delimFound = decoded.find(delim, found + toFind.length()); - if (delimFound == decoded.npos) + if (delimFound == std::string_view::npos) delimFound = decoded.length() - 1; return decoded.substr(found + toFind.length(), delimFound - (found + toFind.length())); } else { - toFind = key + "="; + toFind = std::string(key).append("="); found = decoded.find(toFind); if (found == 0) { size_t delimFound = decoded.find(delim, found + toFind.length()); - if (delimFound == decoded.npos) + if (delimFound == std::string_view::npos) delimFound = decoded.length() - 1; return decoded.substr(found + toFind.length(), delimFound - (found + toFind.length())); } @@ -89,7 +90,7 @@ void SettingsHandler::Reset() m_buffer = {}; } -void SettingsHandler::AddSetting(const std::string& key, const std::string& value) +void SettingsHandler::AddSetting(std::string_view key, std::string_view value) { for (const char& c : key) { @@ -124,8 +125,6 @@ std::string SettingsHandler::GenerateSerialNumber() // Must be 9 characters at most; otherwise the serial number will be rejected by SDK libraries, // as there is a check to ensure the string length is strictly lower than 10. // 3 for %j, 2 for %H, 2 for %M, 2 for %S. - std::stringstream stream; - stream << std::put_time(std::localtime(&t), "%j%H%M%S"); - return stream.str(); + return fmt::format("{:%j%H%M%S}", *std::localtime(&t)); } } // namespace Common |
