51 inline static std::string_view logger_name =
"ores.qt.badge_cache";
53 [[nodiscard]]
static auto& lg() {
55 static auto instance = make_logger(logger_name);
82 void populate_for_testing(
83 std::vector<dq::domain::badge_definition> definitions,
84 std::vector<dq::messaging::badge_mapping> mappings);
97 const std::string& code_domain_code,
98 const std::string& entity_code)
const;
112 void onDefinitionsLoaded();
113 void onMappingsLoaded();
116 void loadDefinitions();
120 struct DefinitionsResult {
122 std::vector<dq::domain::badge_definition> definitions;
125 struct MappingsResult {
127 std::vector<dq::messaging::badge_mapping> mappings;
130 ClientManager* clientManager_;
132 std::vector<dq::domain::badge_definition> definitions_;
133 std::vector<dq::messaging::badge_mapping> mappings_;
136 std::unordered_map<std::string, std::size_t> index_;
139 std::unordered_map<std::string, std::size_t> definition_index_;
141 bool is_loaded_{
false};
142 bool is_loading_{
false};
143 bool definitions_loaded_{
false};
144 bool mappings_loaded_{
false};
146 QFutureWatcher<DefinitionsResult>* definitions_watcher_;
147 QFutureWatcher<MappingsResult>* mappings_watcher_;