1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-27 12:27:35 +00:00

LibConfig+LibCore+ConfigServer: Support u32 configuration entries

This commit is contained in:
Timothy Flynn 2022-12-20 07:12:21 -05:00 committed by Andreas Kling
parent 49f697ed56
commit 69beda23c3
10 changed files with 88 additions and 16 deletions

View file

@ -150,15 +150,6 @@ DeprecatedString ConfigFile::read_entry(DeprecatedString const& group, Deprecate
return jt->value;
}
int ConfigFile::read_num_entry(DeprecatedString const& group, DeprecatedString const& key, int default_value) const
{
if (!has_key(group, key)) {
return default_value;
}
return read_entry(group, key).to_int().value_or(default_value);
}
bool ConfigFile::read_bool_entry(DeprecatedString const& group, DeprecatedString const& key, bool default_value) const
{
auto value = read_entry(group, key, default_value ? "true" : "false");
@ -171,11 +162,6 @@ void ConfigFile::write_entry(DeprecatedString const& group, DeprecatedString con
m_dirty = true;
}
void ConfigFile::write_num_entry(DeprecatedString const& group, DeprecatedString const& key, int value)
{
write_entry(group, key, DeprecatedString::number(value));
}
void ConfigFile::write_bool_entry(DeprecatedString const& group, DeprecatedString const& key, bool value)
{
write_entry(group, key, value ? "true" : "false");

View file

@ -42,13 +42,29 @@ public:
size_t num_groups() const { return m_groups.size(); }
DeprecatedString read_entry(DeprecatedString const& group, DeprecatedString const& key, DeprecatedString const& default_value = DeprecatedString()) const;
int read_num_entry(DeprecatedString const& group, DeprecatedString const& key, int default_value = 0) const;
bool read_bool_entry(DeprecatedString const& group, DeprecatedString const& key, bool default_value = false) const;
template<Integral T = int>
T read_num_entry(DeprecatedString const& group, DeprecatedString const& key, T default_value = 0) const
{
if (!has_key(group, key))
return default_value;
if constexpr (IsSigned<T>)
return read_entry(group, key).to_int<T>().value_or(default_value);
else
return read_entry(group, key).to_uint<T>().value_or(default_value);
}
void write_entry(DeprecatedString const& group, DeprecatedString const& key, DeprecatedString const& value);
void write_num_entry(DeprecatedString const& group, DeprecatedString const& key, int value);
void write_bool_entry(DeprecatedString const& group, DeprecatedString const& key, bool value);
template<Integral T = int>
void write_num_entry(DeprecatedString const& group, DeprecatedString const& key, T value)
{
write_entry(group, key, DeprecatedString::number(value));
}
void dump() const;
bool is_dirty() const { return m_dirty; }