Files
comaps/search/cuisine_filter.hpp
Konstantin Pastbin e3e4a1985a Organic Maps sources as of 02.04.2025 (fad26bbf22ac3da75e01e62aa01e5c8e11861005)
To expand with full Organic Maps and Maps.ME commits history run:
  git remote add om-historic [om-historic.git repo url]
  git fetch --tags om-historic
  git replace squashed-history historic-commits
2025-05-08 21:10:51 +07:00

61 lines
1.2 KiB
C++

#pragma once
#include "search/categories_cache.hpp"
#include "search/mwm_context.hpp"
#include "indexer/mwm_set.hpp"
#include <map>
#include <memory>
#include <utility>
#include <vector>
class FeatureType;
namespace search
{
namespace cuisine_filter
{
struct Description
{
Description() = default;
Description(FeatureType & ft);
std::vector<uint32_t> m_types;
};
class CuisineFilter
{
public:
using Descriptions = std::vector<std::pair<uint32_t, Description>>;
class ScopedFilter
{
public:
ScopedFilter(MwmSet::MwmId const & mwmId, Descriptions const & descriptions,
std::vector<uint32_t> const & types);
bool Matches(FeatureID const & fid) const;
private:
MwmSet::MwmId const m_mwmId;
Descriptions const & m_descriptions;
std::vector<uint32_t> m_types;
};
CuisineFilter(FoodCache & food);
std::unique_ptr<ScopedFilter> MakeScopedFilter(MwmContext const & context,
std::vector<uint32_t> const & types);
void ClearCaches();
private:
Descriptions const & GetDescriptions(MwmContext const & context);
FoodCache & m_food;
std::map<MwmSet::MwmId, Descriptions> m_descriptions;
};
} // namespace cuisine_filter
} // namespace search