mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-02-14 00:09:24 +01:00
Merge pull request #8248 from lioncash/settings
Common/SettingsHandler: Use std::string_view where applicable
This commit is contained in:
commit
1ed7cc260b
@ -9,9 +9,10 @@
|
|||||||
#include <cstddef>
|
#include <cstddef>
|
||||||
#include <ctime>
|
#include <ctime>
|
||||||
#include <iomanip>
|
#include <iomanip>
|
||||||
#include <sstream>
|
|
||||||
#include <string>
|
#include <string>
|
||||||
|
|
||||||
|
#include <fmt/time.h>
|
||||||
|
|
||||||
#include "Common/CommonTypes.h"
|
#include "Common/CommonTypes.h"
|
||||||
|
|
||||||
namespace Common
|
namespace Common
|
||||||
@ -38,27 +39,27 @@ void SettingsHandler::SetBytes(Buffer&& buffer)
|
|||||||
Decrypt();
|
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");
|
constexpr char delim[] = "\r\n";
|
||||||
std::string toFind = delim + key + "=";
|
std::string toFind = std::string(delim).append(key).append("=");
|
||||||
size_t found = decoded.find(toFind);
|
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());
|
size_t delimFound = decoded.find(delim, found + toFind.length());
|
||||||
if (delimFound == decoded.npos)
|
if (delimFound == std::string_view::npos)
|
||||||
delimFound = decoded.length() - 1;
|
delimFound = decoded.length() - 1;
|
||||||
return decoded.substr(found + toFind.length(), delimFound - (found + toFind.length()));
|
return decoded.substr(found + toFind.length(), delimFound - (found + toFind.length()));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
toFind = key + "=";
|
toFind = std::string(key).append("=");
|
||||||
found = decoded.find(toFind);
|
found = decoded.find(toFind);
|
||||||
if (found == 0)
|
if (found == 0)
|
||||||
{
|
{
|
||||||
size_t delimFound = decoded.find(delim, found + toFind.length());
|
size_t delimFound = decoded.find(delim, found + toFind.length());
|
||||||
if (delimFound == decoded.npos)
|
if (delimFound == std::string_view::npos)
|
||||||
delimFound = decoded.length() - 1;
|
delimFound = decoded.length() - 1;
|
||||||
return decoded.substr(found + toFind.length(), delimFound - (found + toFind.length()));
|
return decoded.substr(found + toFind.length(), delimFound - (found + toFind.length()));
|
||||||
}
|
}
|
||||||
@ -89,7 +90,7 @@ void SettingsHandler::Reset()
|
|||||||
m_buffer = {};
|
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)
|
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,
|
// 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.
|
// 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.
|
// 3 for %j, 2 for %H, 2 for %M, 2 for %S.
|
||||||
std::stringstream stream;
|
return fmt::format("{:%j%H%M%S}", *std::localtime(&t));
|
||||||
stream << std::put_time(std::localtime(&t), "%j%H%M%S");
|
|
||||||
return stream.str();
|
|
||||||
}
|
}
|
||||||
} // namespace Common
|
} // namespace Common
|
||||||
|
@ -8,6 +8,7 @@
|
|||||||
|
|
||||||
#include <array>
|
#include <array>
|
||||||
#include <string>
|
#include <string>
|
||||||
|
#include <string_view>
|
||||||
|
|
||||||
#include "Common/CommonTypes.h"
|
#include "Common/CommonTypes.h"
|
||||||
|
|
||||||
@ -27,11 +28,11 @@ public:
|
|||||||
SettingsHandler();
|
SettingsHandler();
|
||||||
explicit SettingsHandler(Buffer&& buffer);
|
explicit SettingsHandler(Buffer&& buffer);
|
||||||
|
|
||||||
void AddSetting(const std::string& key, const std::string& value);
|
void AddSetting(std::string_view key, std::string_view value);
|
||||||
|
|
||||||
const Buffer& GetBytes() const;
|
const Buffer& GetBytes() const;
|
||||||
void SetBytes(Buffer&& buffer);
|
void SetBytes(Buffer&& buffer);
|
||||||
std::string GetValue(const std::string& key) const;
|
std::string GetValue(std::string_view key) const;
|
||||||
|
|
||||||
void Decrypt();
|
void Decrypt();
|
||||||
void Reset();
|
void Reset();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user