MCPcopy Create free account
hub / github.com/GDRETools/gdsdecomp / do_task

Method do_task

plugin_manager/plugin_manager.cpp:251–273  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

249 }
250
251 void do_task(uint32_t index, PrePopToken *tokens) {
252 Error &err = tokens[index].error;
253 auto &token = tokens[index];
254 // Use the new workflow: get ReleaseInfo and populate PluginVersion
255 ReleaseInfo release_info = token.source->get_release_info(token.plugin_name, token.version.first, token.version.second, err);
256 ERR_FAIL_COND_MSG(err != OK, vformat("Failed to get release info for plugin %s primary id %d secondary id %d", token.plugin_name, token.version.first, token.version.second));
257 if (release_info.is_valid()) {
258 String cache_key = release_info.get_cache_key();
259 PluginVersion cached_version = PluginManager::get_cached_plugin_version(cache_key);
260 bool valid = cached_version.is_valid();
261 if (valid && cached_version.release_info != release_info) {
262 print_line("Cached version does not match release info for plugin " + token.plugin_name + " version: " + release_info.version);
263 valid = false;
264 }
265 if (!valid) {
266 PluginVersion plugin_version = PluginManager::populate_plugin_version_from_release(release_info, err);
267 ERR_FAIL_COND_MSG(err != OK, vformat("Failed to populate plugin version for plugin %s primary id %d secondary id %d", token.plugin_name, token.version.first, token.version.second));
268 if (plugin_version.is_valid()) {
269 PluginManager::cache_plugin_version(cache_key, plugin_version);
270 }
271 }
272 }
273 }
274};
275
276Error PluginManager::prepop_cache(const Vector<String> &plugin_names) {

Callers 1

prepop_cacheMethod · 0.45

Calls 3

get_cache_keyMethod · 0.80
get_release_infoMethod · 0.45
is_validMethod · 0.45

Tested by

no test coverage detected