| 258 | } |
| 259 | |
| 260 | std::vector<NetworkResourceRawTO> NetworkResourceService::getMatchingRawTOs(NetworkResourceTreeTO const& treeTO, std::vector<NetworkResourceRawTO> const& rawTOs) |
| 261 | { |
| 262 | if (treeTO->isLeaf()) { |
| 263 | return {treeTO->getLeaf().rawTO}; |
| 264 | } else { |
| 265 | auto findResult = _treeTOtoRawTOcache.find(treeTO); |
| 266 | if (findResult != _treeTOtoRawTOcache.end()) { |
| 267 | return findResult->second; |
| 268 | } |
| 269 | std::vector<NetworkResourceRawTO> result; |
| 270 | for (auto const& [index, rawTO] : rawTOs | boost::adaptors::indexed(0)) { |
| 271 | auto folderNames = getFolderNames(rawTO->resourceName); |
| 272 | if (contains(folderNames, treeTO->folderNames)) { |
| 273 | result.emplace_back(rawTO); |
| 274 | } |
| 275 | } |
| 276 | _treeTOtoRawTOcache.emplace(treeTO, result); |
| 277 | return result; |
| 278 | } |
| 279 | } |
| 280 | |
| 281 | void NetworkResourceService::invalidateCache() |
| 282 | { |
no test coverage detected