30 static std::shared_ptr<SdlPref>
31 instance(
const std::string& name = SdlPref::get_default_file(
false));
33 [[nodiscard]] std::string get_pref_file(
bool systemConfigOnly =
false)
const;
35 [[nodiscard]] std::string get_string(
const std::string& key,
const std::string& fallback =
"",
36 bool systemConfigOnly =
false)
const;
37 [[nodiscard]] int64_t get_int(
const std::string& key, int64_t fallback = 0,
38 bool systemConfigOnly =
false)
const;
39 [[nodiscard]]
bool get_bool(
const std::string& key,
bool fallback =
false,
40 bool systemConfigOnly =
false)
const;
41 [[nodiscard]] std::vector<std::string> get_array(
const std::string& key,
42 const std::vector<std::string>& fallback = {},
43 bool systemConfigOnly =
false)
const;
45 static void print_config_file_help(
int version);
51 std::string _system_name;
52 WINPR_JSONPtr _config;
53 WINPR_JSONPtr _system_config;
55 explicit SdlPref(std::string file);
57 [[nodiscard]] WINPR_JSON* get_item(
const std::string& key,
bool systemConfigOnly)
const;
58 [[nodiscard]] WINPR_JSON* get_item(
const WINPR_JSONPtr& config,
const std::string& key)
const;
60 [[nodiscard]] WINPR_JSONPtr get(
bool systemConfigOnly)
const;
61 [[nodiscard]]
bool get_bool(
const WINPR_JSONPtr& config,
const std::string& key,
62 bool fallback =
false)
const;
64 [[nodiscard]]
bool is_user_config_enabled()
const;
66 static std::string get_pref_dir(
bool systemConfigOnly);
67 static std::string get_default_file(
bool systemConfigOnly);
68 static std::string item_to_str(WINPR_JSON* item,
const std::string& fallback =
"");