| 270 | } |
| 271 | |
| 272 | Result<Ref<ModuleLoadStrategy>> Bundle::getModuleLoadStrategy() { |
| 273 | std::lock_guard<std::recursive_mutex> guard(_mutex); |
| 274 | auto resourceContent = getResourceContent(loadStrategyFilePath()); |
| 275 | if (!resourceContent) { |
| 276 | return resourceContent.moveError(); |
| 277 | } |
| 278 | |
| 279 | auto moduleLoadStragey = castOrNull<ModuleLoadStrategy>(resourceContent.value().processed); |
| 280 | if (moduleLoadStragey != nullptr) { |
| 281 | return moduleLoadStragey; |
| 282 | } |
| 283 | |
| 284 | auto parsed = ModuleLoadStrategy::parse(resourceContent.value().raw.data(), resourceContent.value().raw.size()); |
| 285 | if (!parsed) { |
| 286 | return parsed.moveError(); |
| 287 | } |
| 288 | |
| 289 | setResourceContent(loadStrategyFilePath(), BundleResourceContent(parsed.value())); |
| 290 | |
| 291 | return parsed.value(); |
| 292 | } |
| 293 | |
| 294 | template<typename T> |
| 295 | void removeUnusedItems(FlatMap<StringBox, T>& items) { |
no test coverage detected