From d80392371f059cdf2d6c336c94cf4ca5cdb13667 Mon Sep 17 00:00:00 2001 From: "r.kuznetsov" Date: Fri, 13 Oct 2017 15:23:05 +0300 Subject: [PATCH] Separated types checkers for sponsored objects --- drape_frontend/rule_drawer.cpp | 1 + drape_frontend/stylist.cpp | 22 --- drape_frontend/stylist.hpp | 7 +- indexer/CMakeLists.txt | 2 + indexer/ftypes_matcher.cpp | 171 ------------------ indexer/ftypes_matcher.hpp | 82 +++------ indexer/ftypes_sponsored.cpp | 11 ++ indexer/ftypes_sponsored.hpp | 27 +++ indexer/indexer.pro | 2 + map/framework.cpp | 1 + search/intermediate_result.cpp | 1 + .../indexer/indexer.xcodeproj/project.pbxproj | 16 ++ 12 files changed, 88 insertions(+), 255 deletions(-) create mode 100644 indexer/ftypes_sponsored.cpp create mode 100644 indexer/ftypes_sponsored.hpp diff --git a/drape_frontend/rule_drawer.cpp b/drape_frontend/rule_drawer.cpp index aa68139f75..c81caa07d6 100644 --- a/drape_frontend/rule_drawer.cpp +++ b/drape_frontend/rule_drawer.cpp @@ -12,6 +12,7 @@ #include "indexer/feature_algo.hpp" #include "indexer/feature_visibility.hpp" #include "indexer/ftypes_matcher.hpp" +#include "indexer/ftypes_sponsored.hpp" #include "indexer/map_style_reader.hpp" #include "indexer/road_shields_parser.hpp" #include "indexer/scales.hpp" diff --git a/drape_frontend/stylist.cpp b/drape_frontend/stylist.cpp index bae172fd17..e26e945a24 100644 --- a/drape_frontend/stylist.cpp +++ b/drape_frontend/stylist.cpp @@ -178,25 +178,11 @@ IsBuildingHasPartsChecker::IsBuildingHasPartsChecker() m_types.push_back(classif().GetTypeByPath({"building", "has_parts"})); } -// static -IsBuildingHasPartsChecker const & IsBuildingHasPartsChecker::Instance() -{ - static IsBuildingHasPartsChecker const inst; - return inst; -} - IsBuildingPartChecker::IsBuildingPartChecker() : BaseChecker(1 /* level */) { m_types.push_back(classif().GetTypeByPath({"building:part"})); } -// static -IsBuildingPartChecker const & IsBuildingPartChecker::Instance() -{ - static IsBuildingPartChecker const inst; - return inst; -} - IsHatchingTerritoryChecker::IsHatchingTerritoryChecker() { Classificator const & c = classif(); @@ -207,14 +193,6 @@ IsHatchingTerritoryChecker::IsHatchingTerritoryChecker() m_types.push_back(c.GetTypeByPath({p[0], p[1]})); } -// static -IsHatchingTerritoryChecker const & IsHatchingTerritoryChecker::Instance() -{ - static IsHatchingTerritoryChecker const inst; - return inst; -} - - void CaptionDescription::Init(FeatureType const & f, int8_t deviceLang, int const zoomLevel, diff --git a/drape_frontend/stylist.hpp b/drape_frontend/stylist.hpp index bd5c99e5c5..8622db6fca 100644 --- a/drape_frontend/stylist.hpp +++ b/drape_frontend/stylist.hpp @@ -15,26 +15,25 @@ namespace drule { class BaseRule; } namespace df { - class IsBuildingHasPartsChecker : public ftypes::BaseChecker { IsBuildingHasPartsChecker(); public: - static IsBuildingHasPartsChecker const & Instance(); + DECLARE_CHECKER_INSTANCE(IsBuildingHasPartsChecker); }; class IsBuildingPartChecker : public ftypes::BaseChecker { IsBuildingPartChecker(); public: - static IsBuildingPartChecker const & Instance(); + DECLARE_CHECKER_INSTANCE(IsBuildingPartChecker); }; class IsHatchingTerritoryChecker : public ftypes::BaseChecker { IsHatchingTerritoryChecker(); public: - static IsHatchingTerritoryChecker const & Instance(); + DECLARE_CHECKER_INSTANCE(IsHatchingTerritoryChecker); }; struct CaptionDescription diff --git a/indexer/CMakeLists.txt b/indexer/CMakeLists.txt index 45328415c5..38a50a169d 100644 --- a/indexer/CMakeLists.txt +++ b/indexer/CMakeLists.txt @@ -75,6 +75,8 @@ set( ftraits.hpp ftypes_matcher.cpp ftypes_matcher.hpp + ftypes_sponsored.cpp + ftypes_sponsored.hpp geometry_coding.cpp geometry_coding.hpp geometry_serialization.cpp diff --git a/indexer/ftypes_matcher.cpp b/indexer/ftypes_matcher.cpp index ae335fc1d9..97e822b75d 100644 --- a/indexer/ftypes_matcher.cpp +++ b/indexer/ftypes_matcher.cpp @@ -150,61 +150,30 @@ IsPeakChecker::IsPeakChecker() m_types.push_back(c.GetTypeByPath({"natural", "peak"})); } -IsPeakChecker const & IsPeakChecker::Instance() -{ - static IsPeakChecker const inst; - return inst; -} - IsATMChecker::IsATMChecker() { Classificator const & c = classif(); m_types.push_back(c.GetTypeByPath({"amenity", "atm"})); } -IsATMChecker const & IsATMChecker::Instance() -{ - static IsATMChecker const inst; - return inst; -} - IsSpeedCamChecker::IsSpeedCamChecker() { Classificator const & c = classif(); m_types.push_back(c.GetTypeByPath({"highway", "speed_camera"})); } -// static -IsSpeedCamChecker const & IsSpeedCamChecker::Instance() -{ - static IsSpeedCamChecker const instance; - return instance; -} - IsFuelStationChecker::IsFuelStationChecker() { Classificator const & c = classif(); m_types.push_back(c.GetTypeByPath({"amenity", "fuel"})); } -IsFuelStationChecker const & IsFuelStationChecker::Instance() -{ - static IsFuelStationChecker const inst; - return inst; -} - IsRailwayStationChecker::IsRailwayStationChecker() { Classificator const & c = classif(); m_types.push_back(c.GetTypeByPath({"railway", "station"})); } -IsRailwayStationChecker const & IsRailwayStationChecker::Instance() -{ - static IsRailwayStationChecker const inst; - return inst; -} - IsStreetChecker::IsStreetChecker() { // TODO (@y, @m, @vng): this list must be up-to-date with @@ -234,12 +203,6 @@ IsStreetChecker::IsStreetChecker() m_types.push_back(c.GetTypeByPath({p[0], p[1]})); } -IsStreetChecker const & IsStreetChecker::Instance() -{ - static IsStreetChecker const inst; - return inst; -} - IsAddressObjectChecker::IsAddressObjectChecker() : BaseChecker(1 /* level */) { auto const paths = {"building", "amenity", "shop", "tourism", "historic", "office", "craft"}; @@ -249,12 +212,6 @@ IsAddressObjectChecker::IsAddressObjectChecker() : BaseChecker(1 /* level */) m_types.push_back(c.GetTypeByPath({p})); } -IsAddressObjectChecker const & IsAddressObjectChecker::Instance() -{ - static IsAddressObjectChecker const inst; - return inst; -} - IsVillageChecker::IsVillageChecker() { // TODO (@y, @m, @vng): this list must be up-to-date with @@ -267,36 +224,18 @@ IsVillageChecker::IsVillageChecker() m_types.push_back(c.GetTypeByPath({p[0], p[1]})); } -IsVillageChecker const & IsVillageChecker::Instance() -{ - static IsVillageChecker const inst; - return inst; -} - IsOneWayChecker::IsOneWayChecker() { Classificator const & c = classif(); m_types.push_back(c.GetTypeByPath({"hwtag", "oneway"})); } -IsOneWayChecker const & IsOneWayChecker::Instance() -{ - static IsOneWayChecker const inst; - return inst; -} - IsRoundAboutChecker::IsRoundAboutChecker() { Classificator const & c = classif(); m_types.push_back(c.GetTypeByPath({"junction", "roundabout"})); } -IsRoundAboutChecker const & IsRoundAboutChecker::Instance() -{ - static IsRoundAboutChecker const inst; - return inst; -} - IsLinkChecker::IsLinkChecker() { Classificator const & c = classif(); @@ -310,29 +249,12 @@ IsLinkChecker::IsLinkChecker() m_types.push_back(c.GetTypeByPath(vector(arr[i], arr[i] + 2))); } -IsLinkChecker const & IsLinkChecker::Instance() -{ - static IsLinkChecker const inst; - return inst; -} - IsBuildingChecker::IsBuildingChecker() : BaseChecker(1 /* level */) { m_types.push_back(classif().GetTypeByPath({"building"})); } -IsBuildingChecker const & IsBuildingChecker::Instance() -{ - static IsBuildingChecker const inst; - return inst; -} - IsBridgeChecker::IsBridgeChecker() : BaseChecker(3 /* level */) {} -IsBridgeChecker const & IsBridgeChecker::Instance() -{ - static IsBridgeChecker const inst; - return inst; -} bool IsBridgeChecker::IsMatched(uint32_t type) const { @@ -340,29 +262,12 @@ bool IsBridgeChecker::IsMatched(uint32_t type) const } IsTunnelChecker::IsTunnelChecker() : BaseChecker(3 /* level */) {} -IsTunnelChecker const & IsTunnelChecker::Instance() -{ - static IsTunnelChecker const inst; - return inst; -} bool IsTunnelChecker::IsMatched(uint32_t type) const { return IsTypeConformed(type, {"highway", "*", "tunnel"}); } -IsBookingChecker::IsBookingChecker() -{ - Classificator const & c = classif(); - m_types.push_back(c.GetTypeByPath({"sponsored", "booking"})); -} - -IsBookingChecker const & IsBookingChecker::Instance() -{ - static IsBookingChecker const inst; - return inst; -} - IsHotelChecker::IsHotelChecker() { Classificator const & c = classif(); @@ -381,12 +286,6 @@ IsHotelChecker::IsHotelChecker() sort(m_sortedTypes.begin(), m_sortedTypes.end()); } -IsHotelChecker const & IsHotelChecker::Instance() -{ - static IsHotelChecker const inst; - return inst; -} - unsigned IsHotelChecker::GetHotelTypesMask(FeatureType const & ft) const { feature::TypesHolder types(ft); @@ -439,12 +338,6 @@ IsWifiChecker::IsWifiChecker() m_types.push_back(classif().GetTypeByPath({"internet_access", "wlan"})); } -IsWifiChecker const & IsWifiChecker::Instance() -{ - static IsWifiChecker const instance; - return instance; -} - IsFoodChecker:: IsFoodChecker() { Classificator const & c = classif(); @@ -459,81 +352,23 @@ IsFoodChecker:: IsFoodChecker() m_types.push_back(c.GetTypeByPath({path[0], path[1]})); } -IsFoodChecker const & IsFoodChecker::Instance() -{ - static const IsFoodChecker instance; - return instance; -} - -IsOpentableChecker::IsOpentableChecker() -{ - Classificator const & c = classif(); - m_types.push_back(c.GetTypeByPath({"sponsored", "opentable"})); -} - -IsOpentableChecker const & IsOpentableChecker::Instance() -{ - static IsOpentableChecker const inst; - return inst; -} - IsInvisibleIndexedChecker::IsInvisibleIndexedChecker() : BaseChecker(1 /* level */) { m_types.push_back(classif().GetTypeByPath({"internet_access"})); m_types.push_back(classif().GetTypeByPath({"wheelchair"})); } -IsInvisibleIndexedChecker const & IsInvisibleIndexedChecker::Instance() -{ - static IsInvisibleIndexedChecker const instance; - return instance; -} - IsCityChecker::IsCityChecker() { m_types.push_back(classif().GetTypeByPath({"place", "city"})); } -IsCityChecker const & IsCityChecker::Instance() -{ - static IsCityChecker const inst; - return inst; -} - -IsViatorChecker::IsViatorChecker() -{ - m_types.push_back(classif().GetTypeByPath({"sponsored", "viator"})); -} - -IsViatorChecker const & IsViatorChecker::Instance() -{ - static IsViatorChecker const inst; - return inst; -} - -IsThorChecker::IsThorChecker() -{ - m_types.push_back(classif().GetTypeByPath({"sponsored", "thor"})); -} - -IsThorChecker const & IsThorChecker::Instance() -{ - static IsThorChecker const inst; - return inst; -} - IsPublicTransportStopChecker::IsPublicTransportStopChecker() { m_types.push_back(classif().GetTypeByPath({"highway", "bus_stop"})); m_types.push_back(classif().GetTypeByPath({"railway", "tram_stop"})); } -IsPublicTransportStopChecker const & IsPublicTransportStopChecker::Instance() -{ - static IsPublicTransportStopChecker const inst; - return inst; -} - IsLocalityChecker::IsLocalityChecker() { Classificator const & c = classif(); @@ -585,12 +420,6 @@ Type IsLocalityChecker::GetType(FeatureType const & f) const return GetType(types); } -IsLocalityChecker const & IsLocalityChecker::Instance() -{ - static IsLocalityChecker const inst; - return inst; -} - uint64_t GetPopulation(FeatureType const & ft) { uint64_t population = ft.GetPopulation(); diff --git a/indexer/ftypes_matcher.hpp b/indexer/ftypes_matcher.hpp index bf0cb3d5e0..9a484efa8d 100644 --- a/indexer/ftypes_matcher.hpp +++ b/indexer/ftypes_matcher.hpp @@ -15,6 +15,9 @@ namespace feature { class TypesHolder; } class FeatureType; +#define DECLARE_CHECKER_INSTANCE(CheckerType) static CheckerType const & Instance() { \ + static CheckerType const inst; return inst; } + namespace ftypes { class BaseChecker @@ -47,86 +50,85 @@ class IsPeakChecker : public BaseChecker { IsPeakChecker(); public: - static IsPeakChecker const & Instance(); + DECLARE_CHECKER_INSTANCE(IsPeakChecker); }; class IsATMChecker : public BaseChecker { IsATMChecker(); public: - static IsATMChecker const & Instance(); + DECLARE_CHECKER_INSTANCE(IsATMChecker); }; class IsSpeedCamChecker : public BaseChecker { IsSpeedCamChecker(); public: - static IsSpeedCamChecker const & Instance(); + DECLARE_CHECKER_INSTANCE(IsSpeedCamChecker); }; class IsFuelStationChecker : public BaseChecker { IsFuelStationChecker(); public: - static IsFuelStationChecker const & Instance(); + DECLARE_CHECKER_INSTANCE(IsFuelStationChecker); }; class IsRailwayStationChecker : public BaseChecker { IsRailwayStationChecker(); public: - static IsRailwayStationChecker const & Instance(); + DECLARE_CHECKER_INSTANCE(IsRailwayStationChecker); }; class IsStreetChecker : public BaseChecker { IsStreetChecker(); public: - static IsStreetChecker const & Instance(); + DECLARE_CHECKER_INSTANCE(IsStreetChecker); }; class IsAddressObjectChecker : public BaseChecker { IsAddressObjectChecker(); public: - static IsAddressObjectChecker const & Instance(); + DECLARE_CHECKER_INSTANCE(IsAddressObjectChecker); }; class IsVillageChecker : public BaseChecker { IsVillageChecker(); - public: - static IsVillageChecker const & Instance(); + DECLARE_CHECKER_INSTANCE(IsVillageChecker); }; class IsOneWayChecker : public BaseChecker { IsOneWayChecker(); public: - static IsOneWayChecker const & Instance(); + DECLARE_CHECKER_INSTANCE(IsOneWayChecker); }; class IsRoundAboutChecker : public BaseChecker { IsRoundAboutChecker(); public: - static IsRoundAboutChecker const & Instance(); + DECLARE_CHECKER_INSTANCE(IsRoundAboutChecker); }; class IsLinkChecker : public BaseChecker { IsLinkChecker(); public: - static IsLinkChecker const & Instance(); + DECLARE_CHECKER_INSTANCE(IsLinkChecker); }; class IsBuildingChecker : public BaseChecker { IsBuildingChecker(); public: - static IsBuildingChecker const & Instance(); uint32_t GetMainType() const { return m_types[0]; } + DECLARE_CHECKER_INSTANCE(IsBuildingChecker); }; class IsBridgeChecker : public BaseChecker @@ -135,7 +137,7 @@ class IsBridgeChecker : public BaseChecker IsBridgeChecker(); public: - static IsBridgeChecker const & Instance(); + DECLARE_CHECKER_INSTANCE(IsBridgeChecker); }; class IsTunnelChecker : public BaseChecker @@ -144,14 +146,7 @@ class IsTunnelChecker : public BaseChecker IsTunnelChecker(); public: - static IsTunnelChecker const & Instance(); -}; - -class IsBookingChecker : public BaseChecker -{ - IsBookingChecker(); -public: - static IsBookingChecker const & Instance(); + DECLARE_CHECKER_INSTANCE(IsTunnelChecker); }; class IsHotelChecker : public BaseChecker @@ -174,12 +169,11 @@ public: static_assert(static_cast(Type::Count) <= CHAR_BIT * sizeof(unsigned), "Too many types of hotels"); - static IsHotelChecker const & Instance(); - static char const * GetHotelTypeTag(Type type); unsigned GetHotelTypesMask(FeatureType const & ft) const; + DECLARE_CHECKER_INSTANCE(IsHotelChecker); private: IsHotelChecker(); @@ -191,65 +185,37 @@ private: class IsWifiChecker : public BaseChecker { IsWifiChecker(); - public: - static IsWifiChecker const & Instance(); + DECLARE_CHECKER_INSTANCE(IsWifiChecker); }; class IsFoodChecker : public BaseChecker { IsFoodChecker(); public: - static IsFoodChecker const & Instance(); -}; - -class IsOpentableChecker : public BaseChecker -{ - IsOpentableChecker(); - -public: - static IsOpentableChecker const & Instance(); + DECLARE_CHECKER_INSTANCE(IsFoodChecker); }; // Checks for types that are not drawable, but searchable. class IsInvisibleIndexedChecker : public BaseChecker { IsInvisibleIndexedChecker(); - public: - static IsInvisibleIndexedChecker const & Instance(); + DECLARE_CHECKER_INSTANCE(IsInvisibleIndexedChecker); }; class IsCityChecker : public BaseChecker { IsCityChecker(); - public: - static IsCityChecker const & Instance(); -}; - -class IsViatorChecker : public BaseChecker -{ - IsViatorChecker(); - -public: - static IsViatorChecker const & Instance(); -}; - -class IsThorChecker : public BaseChecker -{ - IsThorChecker(); - -public: - static IsThorChecker const & Instance(); + DECLARE_CHECKER_INSTANCE(IsCityChecker); }; class IsPublicTransportStopChecker : public BaseChecker { IsPublicTransportStopChecker(); - public: - static IsPublicTransportStopChecker const & Instance(); + DECLARE_CHECKER_INSTANCE(IsPublicTransportStopChecker); }; /// Type of locality (do not change values and order - they have detalization order) @@ -264,7 +230,7 @@ public: Type GetType(feature::TypesHolder const & types) const; Type GetType(FeatureType const & f) const; - static IsLocalityChecker const & Instance(); + DECLARE_CHECKER_INSTANCE(IsLocalityChecker); }; template diff --git a/indexer/ftypes_sponsored.cpp b/indexer/ftypes_sponsored.cpp new file mode 100644 index 0000000000..5ac582c696 --- /dev/null +++ b/indexer/ftypes_sponsored.cpp @@ -0,0 +1,11 @@ +#include "indexer/ftypes_sponsored.hpp" + +#include "indexer/classificator.hpp" + +namespace ftypes +{ +BaseSponsoredChecker::BaseSponsoredChecker(std::string const & sponsoredType) +{ + m_types.push_back(classif().GetTypeByPath({"sponsored", sponsoredType})); +} +} // namespace ftypes diff --git a/indexer/ftypes_sponsored.hpp b/indexer/ftypes_sponsored.hpp new file mode 100644 index 0000000000..b126b57ee8 --- /dev/null +++ b/indexer/ftypes_sponsored.hpp @@ -0,0 +1,27 @@ +#pragma once + +#include "indexer/ftypes_matcher.hpp" + +#include + +namespace ftypes +{ +class BaseSponsoredChecker : public BaseChecker +{ +protected: + explicit BaseSponsoredChecker(std::string const & sponsoredType); +}; + +#define SPONSORED_CHECKER(ClassName, Category) \ + class ClassName : public BaseSponsoredChecker { \ + ClassName() : BaseSponsoredChecker(Category) {} \ + public: DECLARE_CHECKER_INSTANCE(ClassName); }; + +// Checkers. +SPONSORED_CHECKER(IsBookingChecker, "booking"); +SPONSORED_CHECKER(IsOpentableChecker, "opentable"); +SPONSORED_CHECKER(IsViatorChecker, "viator"); +SPONSORED_CHECKER(IsThorChecker, "thor"); + +#undef SPONSORED_CHECKER +} // namespace ftypes diff --git a/indexer/indexer.pro b/indexer/indexer.pro index 63f8920d4a..1022039c3c 100644 --- a/indexer/indexer.pro +++ b/indexer/indexer.pro @@ -41,6 +41,7 @@ SOURCES += \ features_offsets_table.cpp \ features_vector.cpp \ ftypes_matcher.cpp \ + ftypes_sponsored.cpp \ geometry_coding.cpp \ geometry_serialization.cpp \ index.cpp \ @@ -102,6 +103,7 @@ HEADERS += \ ftraits.hpp \ ftypes_mapping.hpp \ ftypes_matcher.hpp \ + ftypes_sponsored.hpp \ geometry_coding.hpp \ geometry_serialization.hpp \ index.hpp \ diff --git a/map/framework.cpp b/map/framework.cpp index efdfbc20fb..d8c9a3c1cc 100644 --- a/map/framework.cpp +++ b/map/framework.cpp @@ -48,6 +48,7 @@ #include "indexer/editable_map_object.hpp" #include "indexer/feature.hpp" #include "indexer/feature_visibility.hpp" +#include "indexer/ftypes_sponsored.hpp" #include "indexer/map_style_reader.hpp" #include "indexer/osm_editor.hpp" #include "indexer/scales.hpp" diff --git a/search/intermediate_result.cpp b/search/intermediate_result.cpp index bd9c409e1a..b2591173b9 100644 --- a/search/intermediate_result.cpp +++ b/search/intermediate_result.cpp @@ -9,6 +9,7 @@ #include "indexer/feature.hpp" #include "indexer/feature_algo.hpp" #include "indexer/ftypes_matcher.hpp" +#include "indexer/ftypes_sponsored.hpp" #include "indexer/scales.hpp" #include "geometry/angles.hpp" diff --git a/xcode/indexer/indexer.xcodeproj/project.pbxproj b/xcode/indexer/indexer.xcodeproj/project.pbxproj index 453a884630..ab6767a739 100644 --- a/xcode/indexer/indexer.xcodeproj/project.pbxproj +++ b/xcode/indexer/indexer.xcodeproj/project.pbxproj @@ -66,6 +66,10 @@ 3D928F671D50F9FE001670E0 /* index_helpers.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3D928F651D50F9FE001670E0 /* index_helpers.cpp */; }; 3D928F681D50F9FE001670E0 /* index_helpers.hpp in Headers */ = {isa = PBXBuildFile; fileRef = 3D928F661D50F9FE001670E0 /* index_helpers.hpp */; }; 456B3FB41EDEEB65009B3D1F /* scales_patch.hpp in Headers */ = {isa = PBXBuildFile; fileRef = 456B3FB31EDEEB65009B3D1F /* scales_patch.hpp */; }; + 456E1B181F90E5B7009C32E1 /* cities_boundaries_serdes.hpp in Headers */ = {isa = PBXBuildFile; fileRef = 456E1B141F90E5B6009C32E1 /* cities_boundaries_serdes.hpp */; }; + 456E1B191F90E5B7009C32E1 /* ftypes_sponsored.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 456E1B151F90E5B6009C32E1 /* ftypes_sponsored.cpp */; }; + 456E1B1A1F90E5B7009C32E1 /* ftypes_sponsored.hpp in Headers */ = {isa = PBXBuildFile; fileRef = 456E1B161F90E5B6009C32E1 /* ftypes_sponsored.hpp */; }; + 456E1B1B1F90E5B7009C32E1 /* city_boundary.hpp in Headers */ = {isa = PBXBuildFile; fileRef = 456E1B171F90E5B7009C32E1 /* city_boundary.hpp */; }; 45C108B11E9CFE41000FE1F6 /* polyline_point_to_int64_test.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 45C108AF1E9CFE3E000FE1F6 /* polyline_point_to_int64_test.cpp */; }; 45C108BD1E9D0067000FE1F6 /* libicu.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 45C108BC1E9D0067000FE1F6 /* libicu.a */; }; 45C108BF1E9D008D000FE1F6 /* librouting_common.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 45C108BE1E9D008D000FE1F6 /* librouting_common.a */; }; @@ -290,6 +294,10 @@ 3D928F651D50F9FE001670E0 /* index_helpers.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = index_helpers.cpp; sourceTree = ""; }; 3D928F661D50F9FE001670E0 /* index_helpers.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = index_helpers.hpp; sourceTree = ""; }; 456B3FB31EDEEB65009B3D1F /* scales_patch.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = scales_patch.hpp; sourceTree = ""; }; + 456E1B141F90E5B6009C32E1 /* cities_boundaries_serdes.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = cities_boundaries_serdes.hpp; sourceTree = ""; }; + 456E1B151F90E5B6009C32E1 /* ftypes_sponsored.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ftypes_sponsored.cpp; sourceTree = ""; }; + 456E1B161F90E5B6009C32E1 /* ftypes_sponsored.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = ftypes_sponsored.hpp; sourceTree = ""; }; + 456E1B171F90E5B7009C32E1 /* city_boundary.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = city_boundary.hpp; sourceTree = ""; }; 45C108AF1E9CFE3E000FE1F6 /* polyline_point_to_int64_test.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = polyline_point_to_int64_test.cpp; sourceTree = ""; }; 45C108BC1E9D0067000FE1F6 /* libicu.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libicu.a; path = "/Users/r.kuznetsov/Dev/Projects/omim/xcode/icu/../../../omim-build/xcode/Debug/libicu.a"; sourceTree = ""; }; 45C108BE1E9D008D000FE1F6 /* librouting_common.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = librouting_common.a; path = "/Users/r.kuznetsov/Dev/Projects/omim/xcode/routing_common/../../../omim-build/xcode/Debug/librouting_common.a"; sourceTree = ""; }; @@ -664,6 +672,10 @@ 6753409C1A3F53CB00A0A8C3 /* indexer */ = { isa = PBXGroup; children = ( + 456E1B141F90E5B6009C32E1 /* cities_boundaries_serdes.hpp */, + 456E1B171F90E5B7009C32E1 /* city_boundary.hpp */, + 456E1B151F90E5B6009C32E1 /* ftypes_sponsored.cpp */, + 456E1B161F90E5B6009C32E1 /* ftypes_sponsored.hpp */, F6F1DABD1F13D8B4006A69B7 /* ftraits.hpp */, 456B3FB31EDEEB65009B3D1F /* scales_patch.hpp */, 3D74ABBB1EA67C1E0063A898 /* ftypes_mapping.hpp */, @@ -842,6 +854,7 @@ F6DF5F311CD0FD9A00A87154 /* categories_index.hpp in Headers */, 347F337D1C454242009758CC /* succinct_trie_builder.hpp in Headers */, 675341381A3F540F00A0A8C3 /* mwm_set.hpp in Headers */, + 456E1B181F90E5B7009C32E1 /* cities_boundaries_serdes.hpp in Headers */, 670EE56D1B60033A001E8064 /* unique_index.hpp in Headers */, 6753412B1A3F540F00A0A8C3 /* geometry_coding.hpp in Headers */, 675340FF1A3F540F00A0A8C3 /* cell_coverer.hpp in Headers */, @@ -866,6 +879,7 @@ 675341061A3F540F00A0A8C3 /* coding_params.hpp in Headers */, 56C74C211C749E4700B71B9F /* edits_migration.hpp in Headers */, 6753412F1A3F540F00A0A8C3 /* index_builder.hpp in Headers */, + 456E1B1A1F90E5B7009C32E1 /* ftypes_sponsored.hpp in Headers */, 675341411A3F540F00A0A8C3 /* scales.hpp in Headers */, 675341321A3F540F00A0A8C3 /* interval_index_builder.hpp in Headers */, 347F337C1C454242009758CC /* rank_table.hpp in Headers */, @@ -888,6 +902,7 @@ 675341261A3F540F00A0A8C3 /* feature.hpp in Headers */, 34583BCA1C88552100F94664 /* editable_map_object.hpp in Headers */, 34583BCC1C88552100F94664 /* map_object.hpp in Headers */, + 456E1B1B1F90E5B7009C32E1 /* city_boundary.hpp in Headers */, 34664CF41D49FEC1003D7096 /* altitude_loader.hpp in Headers */, 670D04AC1B0BA8580013A7AC /* feature_loader_101.hpp in Headers */, 67BC92F21D21476500A4A378 /* osm_editor.hpp in Headers */, @@ -1112,6 +1127,7 @@ 6753412E1A3F540F00A0A8C3 /* index_builder.cpp in Sources */, 675341011A3F540F00A0A8C3 /* classificator_loader.cpp in Sources */, F6381BF91CD26C9C004CA943 /* new_feature_categories.cpp in Sources */, + 456E1B191F90E5B7009C32E1 /* ftypes_sponsored.cpp in Sources */, F6DF5F2D1CD0FC9D00A87154 /* categories_index.cpp in Sources */, 674125131B4C02F100A3E828 /* map_style_reader.cpp in Sources */, 675341141A3F540F00A0A8C3 /* feature_covering.cpp in Sources */,