// // Created by Kirill Zhukov on 21.04.2025. // #include "GlobalConfig.h" #include #include "utils/toml/toml.hpp" namespace usub::utils { std::unordered_map database_settings_map; void load_global_config(toml::parse_result& path) { try { if (auto databases = path["databases"].as_table()) { for (const auto& db : *databases) { const auto& db_name = db.first; const auto& db_config = db.second; if (!db_config.is_table()) continue; DatabaseSettings settings; const auto& table = *db_config.as_table(); if (auto val = table[toml::path("shm_queue_capacity")].value()) settings.shm_queue_capacity = *val; if (auto val = table[toml::path("max_memtable_size")].value()) settings.max_memtable_size = *val; if (auto val = table[toml::path("l0_queue_capacity")].value()) settings.l0_queue_capacity = *val; if (auto val = table[toml::path("estimated_element_size")].value()) settings.estimated_element_size = *val; database_settings_map.emplace(db_name.str(), settings); std::cout << "[Config] Loaded for DB '" << db_name << "': " << "shm_queue_capacity=" << settings.shm_queue_capacity << ", max_memtable_size=" << settings.max_memtable_size << ", l0_queue_capacity=" << settings.l0_queue_capacity << ", estimated_element_size=" << settings.estimated_element_size << "\n"; } } } catch (const std::exception& ex) { std::cerr << "[Config] Failed to load config: " << ex.what() << "\n"; } } }