Eliminate SettingsHandler's SetBytes and Reset methods

Also make the `Decrypt` method private.

As far as I can tell, the only motivation for exposing the `SetBytes`
and `Reset` methods is to allow `CBoot::SetupWiiMemory` to use the same
`SettingsHandler` instance to read settings data and then write it back.
It seems cleaner to just use two separate instances, and require a given
`SettingsHandler` instance to be used for either writing data to a
buffer or reading data from a buffer, but not both.

A natural next step is to split the `SettingsHandler` class into two
classes, one for writing data and one for reading data. I've deferred
that change for a future PR.
This commit is contained in:
Niel Lebeck
2024-04-22 21:51:09 -07:00
parent e69486d2cb
commit 36cdb4a544
5 changed files with 14 additions and 57 deletions

View File

@ -17,14 +17,14 @@
namespace Common
{
SettingsHandler::SettingsHandler()
SettingsHandler::SettingsHandler() : m_buffer{}, m_position{0}, m_key{INITIAL_SEED}, decoded{""}
{
Reset();
}
SettingsHandler::SettingsHandler(const Buffer& buffer)
SettingsHandler::SettingsHandler(const Buffer& buffer) : SettingsHandler()
{
SetBytes(buffer);
m_buffer = buffer;
Decrypt();
}
const SettingsHandler::Buffer& SettingsHandler::GetBytes() const
@ -32,13 +32,6 @@ const SettingsHandler::Buffer& SettingsHandler::GetBytes() const
return m_buffer;
}
void SettingsHandler::SetBytes(const Buffer& buffer)
{
Reset();
m_buffer = buffer;
Decrypt();
}
std::string SettingsHandler::GetValue(std::string_view key) const
{
constexpr char delim[] = "\n";
@ -84,14 +77,6 @@ void SettingsHandler::Decrypt()
std::erase(decoded, '\x0d');
}
void SettingsHandler::Reset()
{
decoded = "";
m_position = 0;
m_key = INITIAL_SEED;
m_buffer = {};
}
void SettingsHandler::AddSetting(std::string_view key, std::string_view value)
{
WriteLine(fmt::format("{}={}\r\n", key, value));