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

Userland: Introduce ConfigServer and LibConfig

ConfigServer is an IPC service that provides access to application
configuration and settings. The idea is to replace all uses of
Core::ConfigFile with IPC requests to ConfigServer.

This first cut of the API is pretty similar to Core::ConfigFile.

The old:

    auto config = Core::ConfigFile::open_for_app("App");
    auto value = config->read_entry("Group", "Key");

The new:

    auto value = Config::read_string("App", "Group", "Key");

ConfigServer uses the ~/.config directory as its backing store
and all the files remain human-editable. :^)
This commit is contained in:
Andreas Kling 2021-08-25 19:35:19 +02:00
parent c97f7ea23b
commit bdcd0abf9d
12 changed files with 319 additions and 0 deletions

View file

@ -0,0 +1,10 @@
endpoint ConfigServer
{
read_string_value(String domain, String group, String key) => (Optional<String> value)
read_i32_value(String domain, String group, String key) => (Optional<i32> value)
read_bool_value(String domain, String group, String key) => (Optional<bool> value)
write_string_value(String domain, String group, String key, String value) =|
write_i32_value(String domain, String group, String key, i32 value) =|
write_bool_value(String domain, String group, String key, bool value) =|
}