MCPcopy Create free account
hub / github.com/comaps/comaps / RetrieveAddressFeaturesImpl

Function RetrieveAddressFeaturesImpl

libs/search/retrieval.cpp:252–277  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

250
251template <typename Value, typename DFA>
252Retrieval::ExtendedFeatures RetrieveAddressFeaturesImpl(Retrieval::TrieRoot<Value> const & root,
253 MwmContext const & context,
254 base::Cancellable const & cancellable,
255 SearchTrieRequest<DFA> const & request)
256{
257 EditedFeaturesHolder holder(context.GetId());
258 vector<uint64_t> features;
259 vector<uint64_t> exactlyMatchedFeatures;
260 FeaturesCollector collector(cancellable, features, exactlyMatchedFeatures);
261
262 MatchFeaturesInTrie(request, root, [&holder](Value const & value)
263 { return !holder.ModifiedOrDeleted(base::asserted_cast<uint32_t>(value.m_featureId)); } /* filter */, collector);
264
265 holder.ForEachModifiedOrCreated([&](EditableMapObject const & emo, uint64_t index)
266 {
267 auto const matched = MatchFeatureByNameAndType(emo, request);
268 if (matched.first)
269 {
270 features.emplace_back(index);
271 if (matched.second)
272 exactlyMatchedFeatures.emplace_back(index);
273 }
274 });
275
276 return SortFeaturesAndBuildResult(std::move(features), std::move(exactlyMatchedFeatures));
277}
278
279template <typename Value>
280Retrieval::ExtendedFeatures RetrievePostcodeFeaturesImpl(Retrieval::TrieRoot<Value> const & root,

Callers

nothing calls this directly

Calls 7

MatchFeaturesInTrieFunction · 0.85
ModifiedOrDeletedMethod · 0.80
GetIdMethod · 0.45
emplace_backMethod · 0.45

Tested by

no test coverage detected