diff --git a/indexer/CMakeLists.txt b/indexer/CMakeLists.txt index 5d5fe04929..b25a5e9ce9 100644 --- a/indexer/CMakeLists.txt +++ b/indexer/CMakeLists.txt @@ -90,7 +90,6 @@ set( index.cpp index.hpp interval_index_builder.hpp - interval_index_iface.hpp interval_index.hpp map_object.cpp map_object.hpp @@ -102,9 +101,6 @@ set( mwm_set.hpp new_feature_categories.cpp # it's in indexer because of CategoriesHolder dependency. new_feature_categories.hpp # it's in indexer because of CategoriesHolder dependency. - old/feature_loader_101.cpp - old/feature_loader_101.hpp - old/interval_index_101.hpp osm_editor.cpp osm_editor.hpp postcodes_matcher.cpp # it's in indexer due to editor which is in indexer and depends on postcodes_marcher diff --git a/indexer/data_factory.hpp b/indexer/data_factory.hpp index 13ea4e1077..079ed87c83 100644 --- a/indexer/data_factory.hpp +++ b/indexer/data_factory.hpp @@ -2,10 +2,11 @@ #include "indexer/data_header.hpp" #include "indexer/feature_meta.hpp" #include "indexer/interval_index.hpp" -#include "indexer/old/interval_index_101.hpp" #include "platform/mwm_version.hpp" +#include + class FilesContainerR; class IntervalIndexIFace; @@ -23,10 +24,9 @@ public: inline feature::RegionData const & GetRegionData() const { return m_regionData; } template - IntervalIndexIFace * CreateIndex(Reader const & reader) const + std::unique_ptr> CreateIndex(Reader const & reader) const { - if (m_version.GetFormat() == version::Format::v1) - return new old_101::IntervalIndex(reader); - return new IntervalIndex(reader); + CHECK_NOT_EQUAL(m_version.GetFormat(), version::Format::v1, ("Old maps format is not supported")); + return std::make_unique>(reader); } }; diff --git a/indexer/feature_loader_base.cpp b/indexer/feature_loader_base.cpp index eb7fd69a91..6abe4de1d4 100644 --- a/indexer/feature_loader_base.cpp +++ b/indexer/feature_loader_base.cpp @@ -2,8 +2,6 @@ #include "indexer/feature_loader.hpp" #include "indexer/feature_impl.hpp" -#include "indexer/old/feature_loader_101.hpp" - #include "defines.hpp" #include "coding/byte_stream.hpp" @@ -24,7 +22,7 @@ SharedLoadInfo::SharedLoadInfo(FilesContainerR const & cont, DataHeader const & SharedLoadInfo::~SharedLoadInfo() { - delete m_pLoader; + delete m_loader; } SharedLoadInfo::TReader SharedLoadInfo::GetDataReader() const @@ -59,10 +57,8 @@ SharedLoadInfo::TReader SharedLoadInfo::GetTrianglesReader(int ind) const void SharedLoadInfo::CreateLoader() { - if (m_header.GetFormat() == version::Format::v1) - m_pLoader = new old_101::feature::LoaderImpl(*this); - else - m_pLoader = new LoaderCurrent(*this); + CHECK_NOT_EQUAL(m_header.GetFormat(), version::Format::v1, ("Old maps format is not supported")); + m_loader = new LoaderCurrent(*this); } //////////////////////////////////////////////////////////////////////////////////////////// diff --git a/indexer/feature_loader_base.hpp b/indexer/feature_loader_base.hpp index 78a5179281..cb2618c112 100644 --- a/indexer/feature_loader_base.hpp +++ b/indexer/feature_loader_base.hpp @@ -22,7 +22,7 @@ namespace feature using TReader = FilesContainerR::TReader; - LoaderBase * m_pLoader; + LoaderBase * m_loader; void CreateLoader(); public: @@ -36,7 +36,7 @@ namespace feature TReader GetGeometryReader(int ind) const; TReader GetTrianglesReader(int ind) const; - LoaderBase * GetLoader() const { return m_pLoader; } + LoaderBase * GetLoader() const { return m_loader; } inline version::Format GetMWMFormat() const { return m_header.GetFormat(); } diff --git a/indexer/interval_index.hpp b/indexer/interval_index.hpp index 1f6298a1a8..147740a85e 100644 --- a/indexer/interval_index.hpp +++ b/indexer/interval_index.hpp @@ -1,6 +1,4 @@ #pragma once -#include "indexer/interval_index_iface.hpp" - #include "coding/endianness.hpp" #include "coding/byte_stream.hpp" #include "coding/reader.hpp" @@ -9,8 +7,9 @@ #include "base/assert.hpp" #include "base/buffer_vector.hpp" +#include -class IntervalIndexBase : public IntervalIndexIFace +class IntervalIndexBase { public: #pragma pack(push, 1) @@ -71,11 +70,6 @@ public: } } - virtual void DoForEach(FunctionT const & f, uint64_t beg, uint64_t end) - { - ForEach(f, beg, end); - } - private: template diff --git a/indexer/interval_index_iface.hpp b/indexer/interval_index_iface.hpp deleted file mode 100644 index c1722b5fbe..0000000000 --- a/indexer/interval_index_iface.hpp +++ /dev/null @@ -1,15 +0,0 @@ -#pragma once - -#include "std/cstdint.hpp" -#include "std/function.hpp" - - -class IntervalIndexIFace -{ -public: - virtual ~IntervalIndexIFace() {} - - typedef function FunctionT; - - virtual void DoForEach(FunctionT const & f, uint64_t beg, uint64_t end) = 0; -}; diff --git a/indexer/old/feature_loader_101.cpp b/indexer/old/feature_loader_101.cpp deleted file mode 100644 index 51e6822912..0000000000 --- a/indexer/old/feature_loader_101.cpp +++ /dev/null @@ -1,419 +0,0 @@ -#include "indexer/old/feature_loader_101.hpp" - -#include "indexer/classificator.hpp" -#include "indexer/feature.hpp" -#include "indexer/scales.hpp" -#include "indexer/geometry_serialization.hpp" -#include "indexer/coding_params.hpp" - -#include "coding/byte_stream.hpp" - - -namespace old_101 { namespace feature { - - -uint8_t LoaderImpl::GetHeader() -{ - uint8_t const h = Header(); - - uint8_t header = static_cast((h & 7) - 1); - - if (h & HEADER_HAS_NAME) - header |= ::feature::HEADER_HAS_NAME; - - if (h & HEADER_HAS_LAYER) - header |= ::feature::HEADER_HAS_LAYER; - - if (h & HEADER_IS_LINE) - header |= ::feature::HEADER_GEOM_LINE; - - if (h & HEADER_IS_AREA) - header |= ::feature::HEADER_GEOM_AREA; - - return header; -} - -namespace -{ - class TypeConvertor - { - vector m_inc; - - public: - TypeConvertor() - { - char const * arr[][3] = { - // first should be the new added type, after which all types should be incremented - { "shop", "convenience", "" }, - { "shop", "hairdresser", "" }, - - { "highway", "minor", "oneway" }, - { "highway", "minor", "tunnel" }, - { "highway", "minor", "turning_circle" }, - - { "highway", "primary", "oneway" }, - { "highway", "primary", "tunnel" }, - - { "highway", "primary_link", "oneway" }, - { "highway", "primary_link", "tunnel" }, - - { "highway", "residential", "oneway" }, - { "highway", "residential", "tunnel" }, - { "highway", "residential", "turning_circle" }, - - { "highway", "road", "oneway" }, - { "highway", "road", "tunnel" }, - { "highway", "road", "turning_circle" }, - - { "highway", "secondary", "oneway" }, - { "highway", "secondary", "tunnel" }, - - { "highway", "secondary_link", "oneway" }, - { "highway", "secondary_link", "tunnel" }, - - { "highway", "service", "oneway" }, - { "highway", "service", "parking_aisle" }, - { "highway", "service", "tunnel" }, - - { "highway", "tertiary", "oneway" }, - { "highway", "tertiary", "tunnel" }, - - { "highway", "tertiary_link", "oneway" }, - { "highway", "tertiary_link", "tunnel" }, - - { "highway", "track", "oneway" }, - { "highway", "track", "permissive" }, - { "highway", "track", "private" }, - { "highway", "track", "race" }, - { "highway", "track", "racetrack" }, - { "highway", "track", "tunnel" }, - - { "highway", "trunk", "oneway" }, - { "highway", "trunk", "tunnel" }, - - { "highway", "trunk_link", "oneway" }, - { "highway", "trunk_link", "tunnel" }, - - { "highway", "unclassified", "oneway" }, - { "highway", "unclassified", "tunnel" }, - { "highway", "unclassified", "turning_circle" }, - - { "highway", "unsurfaced", "oneway" }, - { "highway", "unsurfaced", "permissive" }, - { "highway", "unsurfaced", "private" }, - { "highway", "unsurfaced", "tunnel" } - }; - - Classificator const & c = classif(); - - size_t const count = ARRAY_SIZE(arr); - m_inc.reserve(count); - - for (size_t i = 0; i < count; ++i) - { - vector v; - v.push_back(arr[i][0]); - v.push_back(arr[i][1]); - if (strlen(arr[i][2]) > 0) - v.push_back(arr[i][2]); - - m_inc.push_back(c.GetTypeByPath(v)); - } - } - - uint32_t Convert(uint32_t t) const - { - // leave only 3 levels for compare - ftype::TruncValue(t, 3); - - size_t const count = m_inc.size(); - for (size_t i = 0; i < count; ++i) - if (m_inc[i] == t) - { - // return next type (advance by 1) - ASSERT_LESS ( i+1, count, () ); - return m_inc[i+1]; - } - return t; - } - }; -} - -void LoaderImpl::ParseTypes() -{ - ArrayByteSource source(DataPtr() + m_TypesOffset); - - static TypeConvertor typeC; - - size_t const count = m_pF->GetTypesCount(); - for (size_t i = 0; i < count; ++i) - m_pF->m_types[i] = typeC.Convert(ReadVarUint(source)); - - m_CommonOffset = CalcOffset(source); -} - -void LoaderImpl::ParseCommon() -{ - ArrayByteSource source(DataPtr() + m_CommonOffset); - - uint8_t const h = Header(); - - if (h & HEADER_HAS_LAYER) - m_pF->m_params.layer = ReadVarInt(source); - - if (h & HEADER_HAS_NAME) - { - string name; - name.resize(ReadVarUint(source) + 1); - source.Read(&name[0], name.size()); - m_pF->m_params.name.AddString(StringUtf8Multilang::kDefaultCode, name); - } - - if (h & HEADER_HAS_POINT) - { - m_pF->m_center = Int64ToPoint( - ReadVarInt(source) + GetDefCodingParams().GetBasePointInt64(), POINT_COORD_BITS); - - m_pF->m_limitRect.Add(m_pF->m_center); - } - - m_Header2Offset = CalcOffset(source); -} - -int LoaderImpl::GetScaleIndex(int scale) const -{ - int const count = m_Info.GetScalesCount(); - if (scale == FeatureType::BEST_GEOMETRY) - return count - 1; - - for (int i = 0; i < count; ++i) - if (scale <= m_Info.GetScale(i)) - return i; - return -1; -} - -int LoaderImpl::GetScaleIndex(int scale, offsets_t const & offsets) const -{ - if (scale == FeatureType::BEST_GEOMETRY) - { - // Choose the best geometry for the last visible scale. - int i = static_cast(offsets.size()-1); - while (i >= 0 && offsets[i] == s_InvalidOffset) --i; - if (i >= 0) - return i; - else - CHECK ( false, ("Feature should have any geometry ...") ); - } - else - { - for (int i = 0; i < m_Info.GetScalesCount(); ++i) - if (scale <= m_Info.GetScale(i)) - { - if (offsets[i] != s_InvalidOffset) - return i; - else - break; - } - } - - return -1; -} - -namespace -{ - class BitSource - { - char const * m_ptr; - uint8_t m_pos; - - public: - BitSource(char const * p) : m_ptr(p), m_pos(0) {} - - uint8_t Read(uint8_t count) - { - ASSERT_LESS ( count, 9, () ); - - uint8_t v = *m_ptr; - v >>= m_pos; - v &= ((1 << count) - 1); - - m_pos += count; - if (m_pos >= 8) - { - ASSERT_EQUAL ( m_pos, 8, () ); - ++m_ptr; - m_pos = 0; - } - - return v; - } - - char const * RoundPtr() - { - if (m_pos > 0) - { - ++m_ptr; - m_pos = 0; - } - return m_ptr; - } - }; - - template uint8_t ReadByte(TSource & src) - { - return ReadPrimitiveFromSource(src); - } -} - -void LoaderImpl::ParseHeader2() -{ - uint8_t ptsCount = 0, ptsMask = 0, trgCount = 0, trgMask = 0; - - uint8_t const commonH = Header(); - BitSource bitSource(DataPtr() + m_Header2Offset); - - if (commonH & HEADER_IS_LINE) - { - ptsCount = bitSource.Read(4); - if (ptsCount == 0) - ptsMask = bitSource.Read(4); - else - { - ASSERT_GREATER ( ptsCount, 1, () ); - } - } - - if (commonH & HEADER_IS_AREA) - { - trgCount = bitSource.Read(4); - if (trgCount == 0) - trgMask = bitSource.Read(4); - } - - ArrayByteSource src(bitSource.RoundPtr()); - - if (commonH & HEADER_IS_LINE) - { - if (ptsCount > 0) - { - int const count = (ptsCount - 2 + 3) / 4; - ASSERT_LESS ( count, 4, () ); - - for (int i = 0; i < count; ++i) - { - uint32_t mask = ReadByte(src); - m_ptsSimpMask += (mask << (i << 3)); - } - - char const * start = src.PtrC(); - - src = ArrayByteSource(serial::LoadInnerPath( - start, ptsCount, GetDefCodingParams(), m_pF->m_points)); - - m_pF->m_innerStats.m_points = static_cast(src.PtrC() - start); - } - else - ReadOffsets(src, ptsMask, m_ptsOffsets); - } - - if (commonH & HEADER_IS_AREA) - { - if (trgCount > 0) - { - trgCount += 2; - - char const * start = src.PtrC(); - - FeatureType::points_t points; - src = ArrayByteSource(serial::LoadInnerTriangles( - start, trgCount, GetDefCodingParams(), points)); - - m_pF->m_innerStats.m_strips = static_cast(src.PtrC() - start); - - for (uint8_t i = 2; i < trgCount; ++i) - { - m_pF->m_triangles.push_back(points[i-2]); - m_pF->m_triangles.push_back(points[i-1]); - m_pF->m_triangles.push_back(points[i]); - } - } - else - ReadOffsets(src, trgMask, m_trgOffsets); - } - - m_pF->m_innerStats.m_size = static_cast(src.PtrC() - DataPtr()); -} - -uint32_t LoaderImpl::ParseGeometry(int scale) -{ - uint32_t sz = 0; - if (Header() & HEADER_IS_LINE) - { - if (m_pF->m_points.empty()) - { - // outer geometry - int const ind = GetScaleIndex(scale, m_ptsOffsets); - if (ind != -1) - { - ReaderSource src(m_Info.GetGeometryReader(ind)); - src.Skip(m_ptsOffsets[ind]); - serial::LoadOuterPath(src, GetDefCodingParams(), m_pF->m_points); - - sz = static_cast(src.Pos() - m_ptsOffsets[ind]); - } - } - else - { - // filter inner geometry - - size_t const count = m_pF->m_points.size(); - FeatureType::points_t points; - points.reserve(count); - - int const scaleIndex = GetScaleIndex(scale); - ASSERT_LESS ( scaleIndex, m_Info.GetScalesCount(), () ); - - points.push_back(m_pF->m_points.front()); - for (size_t i = 1; i + 1 < count; ++i) - { - // check for point visibility in needed scaleIndex - if (static_cast((m_ptsSimpMask >> (2 * (i - 1))) & 0x3) <= scaleIndex) - points.push_back(m_pF->m_points[i]); - } - points.push_back(m_pF->m_points.back()); - - m_pF->m_points.swap(points); - } - - ::feature::CalcRect(m_pF->m_points, m_pF->m_limitRect); - } - - return sz; -} - -uint32_t LoaderImpl::ParseTriangles(int scale) -{ - uint32_t sz = 0; - if (Header() & HEADER_IS_AREA) - { - if (m_pF->m_triangles.empty()) - { - auto const ind = GetScaleIndex(scale, m_trgOffsets); - if (ind != -1) - { - ReaderSource src(m_Info.GetTrianglesReader(ind)); - src.Skip(m_trgOffsets[ind]); - serial::LoadOuterTriangles(src, GetDefCodingParams(), m_pF->m_triangles); - - sz = static_cast(src.Pos() - m_trgOffsets[ind]); - } - } - - ::feature::CalcRect(m_pF->m_triangles, m_pF->m_limitRect); - } - - return sz; -} - -} -} diff --git a/indexer/old/feature_loader_101.hpp b/indexer/old/feature_loader_101.hpp deleted file mode 100644 index 2a7a4184c2..0000000000 --- a/indexer/old/feature_loader_101.hpp +++ /dev/null @@ -1,41 +0,0 @@ -#pragma once -#include "indexer/feature_loader_base.hpp" - - -namespace old_101 { namespace feature -{ - class LoaderImpl : public ::feature::LoaderBase - { - typedef ::feature::LoaderBase BaseT; - - /// Get the index for geometry serialization. - /// @param[in] scale: - /// -1 : index for the best geometry - /// default : needed geometry - //@{ - int GetScaleIndex(int scale) const; - int GetScaleIndex(int scale, offsets_t const & offsets) const; - //@} - - enum - { - HEADER_HAS_LAYER = 1U << 7, - HEADER_HAS_NAME = 1U << 6, - HEADER_IS_AREA = 1U << 5, - HEADER_IS_LINE = 1U << 4, - HEADER_HAS_POINT = 1U << 3 - }; - - public: - LoaderImpl(::feature::SharedLoadInfo const & info) : BaseT(info) {} - /// LoaderBase overrides: - uint8_t GetHeader() override; - void ParseTypes() override; - void ParseCommon() override; - void ParseHeader2() override; - uint32_t ParseGeometry(int scale) override; - uint32_t ParseTriangles(int scale) override; - void ParseMetadata() override {} /// not supported in this version - }; -} -} diff --git a/indexer/old/interval_index_101.hpp b/indexer/old/interval_index_101.hpp deleted file mode 100644 index 438d2bae73..0000000000 --- a/indexer/old/interval_index_101.hpp +++ /dev/null @@ -1,141 +0,0 @@ -#pragma once -#include "indexer/interval_index_iface.hpp" - -#include "coding/endianness.hpp" - -#include "base/assert.hpp" -#include "base/base.hpp" -#include "base/macros.hpp" - -#include "std/cstring.hpp" - - -namespace old_101 { - -class IntervalIndexBase : public IntervalIndexIFace -{ -public: -#pragma pack(push, 1) - struct Header - { - uint8_t m_CellIdLeafBytes; - }; -#pragma pack(pop) - - class Index - { - public: - uint32_t GetBaseOffset() const { return UINT32_FROM_UINT16(m_BaseOffsetHi, m_BaseOffsetLo); } - void SetBaseOffset(uint32_t baseOffset) - { - m_BaseOffsetLo = UINT32_LO(baseOffset); - m_BaseOffsetHi = UINT32_HI(baseOffset); - } - - private: - uint16_t m_BaseOffsetLo; - uint16_t m_BaseOffsetHi; - public: - uint16_t m_Count[256]; - }; - static_assert(sizeof(Index) == 2 * 258, ""); -}; - -// TODO: IntervalIndex shouldn't do SwapIfBigEndian for ValueT. -template -class IntervalIndex : public IntervalIndexBase -{ - typedef IntervalIndexBase base_t; - -public: - - IntervalIndex(ReaderT const & reader, int cellIdBytes = 5) - : m_Reader(reader), m_CellIdBytes(cellIdBytes) - { - m_Reader.Read(0, &m_Header, sizeof(m_Header)); - ReadIndex(sizeof(m_Header), m_Level0Index); - } - - template - void ForEach(F const & f, uint64_t beg, uint64_t end) const - { - ASSERT_LESS(beg, 1ULL << 8 * m_CellIdBytes, (beg, end)); - ASSERT_LESS_OR_EQUAL(end, 1ULL << 8 * m_CellIdBytes, (beg, end)); - // end is inclusive in ForEachImpl(). - --end; - ForEachImpl(f, beg, end, m_Level0Index, m_CellIdBytes - 1); - } - - virtual void DoForEach(FunctionT const & f, uint64_t beg, uint64_t end) - { - ForEach(f, beg, end); - } - -private: - template - void ForEachImpl(F const & f, uint64_t beg, uint64_t end, Index const & index, int level) const - { - uint32_t const beg0 = static_cast(beg >> (8 * level)); - uint32_t const end0 = static_cast(end >> (8 * level)); - uint32_t cumCount = 0; - for (uint32_t i = 0; i < beg0; ++i) - cumCount += index.m_Count[i]; - for (uint32_t i = beg0; i <= end0; ++i) - { - ASSERT_LESS(i, 256, ()); - if (index.m_Count[i] != 0) - { - uint64_t const levelBytesFF = (1ULL << 8 * level) - 1; - uint64_t const b1 = (i == beg0) ? (beg & levelBytesFF) : 0; - uint64_t const e1 = (i == end0) ? (end & levelBytesFF) : levelBytesFF; - if (level > m_Header.m_CellIdLeafBytes) - { - Index index1; - ReadIndex(index.GetBaseOffset() + (cumCount * sizeof(Index)), index1); - ForEachImpl(f, b1, e1, index1, level - 1); - } - else - { - // TODO: Use binary search here if count is very large. - uint32_t const step = sizeof(ValueT) + m_Header.m_CellIdLeafBytes; - uint32_t const count = index.m_Count[i]; - uint32_t pos = index.GetBaseOffset() + (cumCount * step); - size_t const readSize = step * count; - vector dataCache(readSize, 0); - char * pData = &dataCache[0]; - m_Reader.Read(pos, pData, readSize); - for (uint32_t j = 0; j < count; ++j, pData += step) - // for (uint32_t j = 0; j < count; ++j, pos += step) - { - ValueT value; - uint32_t cellIdOnDisk = 0; - memcpy(&value, pData, sizeof(ValueT)); - memcpy(&cellIdOnDisk, pData + sizeof(ValueT), m_Header.m_CellIdLeafBytes); - // m_Reader.Read(pos, &value, step); - uint32_t const cellId = SwapIfBigEndian(cellIdOnDisk); - if (b1 <= cellId && cellId <= e1) - f(SwapIfBigEndian(value)); - } - } - cumCount += index.m_Count[i]; - } - } - } - - void ReadIndex(uint64_t pos, Index & index) const - { - m_Reader.Read(pos, &index, sizeof(Index)); - if (IsBigEndian()) - { - for (uint32_t i = 0; i < 256; ++i) - index.m_Count[i] = SwapIfBigEndian(index.m_Count[i]); - } - } - - ReaderT m_Reader; - Header m_Header; - Index m_Level0Index; - int m_CellIdBytes; -}; - -} diff --git a/indexer/scale_index.hpp b/indexer/scale_index.hpp index 029dae15c1..bcc71d52ba 100644 --- a/indexer/scale_index.hpp +++ b/indexer/scale_index.hpp @@ -1,14 +1,13 @@ #pragma once #include "indexer/data_factory.hpp" -#include "indexer/interval_index_iface.hpp" +#include "indexer/interval_index.hpp" #include "coding/var_serial_vector.hpp" -#include "base/stl_add.hpp" - -#include "std/algorithm.hpp" -#include "std/bind.hpp" +#include +#include +#include /// Index bucket <--> Draw scale range. @@ -19,7 +18,7 @@ public: static uint32_t GetBucketsCount() { return 18; } static uint32_t BucketByScale(int scale) { return static_cast(scale); } /// @return Range like [x, y). - static pair ScaleRangeForBucket(uint32_t bucket) + static std::pair ScaleRangeForBucket(uint32_t bucket) { return {bucket, bucket + 1}; } @@ -45,7 +44,6 @@ public: void Clear() { - for_each(m_IndexForScale.begin(), m_IndexForScale.end(), DeleteFunctor()); m_IndexForScale.clear(); } @@ -65,12 +63,11 @@ public: auto const scaleBucket = BucketByScale(scale); if (scaleBucket < m_IndexForScale.size()) { - IntervalIndexIFace::FunctionT f1(cref(f)); for (size_t i = 0; i <= scaleBucket; ++i) - m_IndexForScale[i]->DoForEach(f1, beg, end); + m_IndexForScale[i]->ForEach(f, beg, end); } } private: - vector m_IndexForScale; + std::vector>> m_IndexForScale; }; diff --git a/xcode/indexer/indexer.xcodeproj/project.pbxproj b/xcode/indexer/indexer.xcodeproj/project.pbxproj index e821ec1324..51e60d50f6 100644 --- a/xcode/indexer/indexer.xcodeproj/project.pbxproj +++ b/xcode/indexer/indexer.xcodeproj/project.pbxproj @@ -134,9 +134,6 @@ 670C61401AB066CD00C38A8C /* libindexer.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 6753409A1A3F53CB00A0A8C3 /* libindexer.a */; }; 670C615B1AB0691900C38A8C /* features_offsets_table.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 670C61581AB0691900C38A8C /* features_offsets_table.cpp */; }; 670C615C1AB0691900C38A8C /* features_offsets_table.hpp in Headers */ = {isa = PBXBuildFile; fileRef = 670C61591AB0691900C38A8C /* features_offsets_table.hpp */; }; - 670D04AB1B0BA8580013A7AC /* feature_loader_101.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 670D04A81B0BA8580013A7AC /* feature_loader_101.cpp */; }; - 670D04AC1B0BA8580013A7AC /* feature_loader_101.hpp in Headers */ = {isa = PBXBuildFile; fileRef = 670D04A91B0BA8580013A7AC /* feature_loader_101.hpp */; }; - 670D04AD1B0BA8580013A7AC /* interval_index_101.hpp in Headers */ = {isa = PBXBuildFile; fileRef = 670D04AA1B0BA8580013A7AC /* interval_index_101.hpp */; }; 670EE56C1B60033A001E8064 /* features_vector.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 670EE56A1B60033A001E8064 /* features_vector.cpp */; }; 670EE56D1B60033A001E8064 /* unique_index.hpp in Headers */ = {isa = PBXBuildFile; fileRef = 670EE56B1B60033A001E8064 /* unique_index.hpp */; }; 6726C1D11A49DAAC005EEA39 /* feature_meta.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6726C1CF1A49DAAC005EEA39 /* feature_meta.cpp */; }; @@ -370,9 +367,6 @@ 670C61251AB0661100C38A8C /* indexer_tests.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = indexer_tests.app; sourceTree = BUILT_PRODUCTS_DIR; }; 670C61581AB0691900C38A8C /* features_offsets_table.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = features_offsets_table.cpp; sourceTree = ""; }; 670C61591AB0691900C38A8C /* features_offsets_table.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = features_offsets_table.hpp; sourceTree = ""; }; - 670D04A81B0BA8580013A7AC /* feature_loader_101.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = feature_loader_101.cpp; sourceTree = ""; }; - 670D04A91B0BA8580013A7AC /* feature_loader_101.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = feature_loader_101.hpp; sourceTree = ""; }; - 670D04AA1B0BA8580013A7AC /* interval_index_101.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = interval_index_101.hpp; sourceTree = ""; }; 670EE56A1B60033A001E8064 /* features_vector.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = features_vector.cpp; sourceTree = ""; }; 670EE56B1B60033A001E8064 /* unique_index.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = unique_index.hpp; sourceTree = ""; }; 6726C1CF1A49DAAC005EEA39 /* feature_meta.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = feature_meta.cpp; sourceTree = ""; }; @@ -649,16 +643,6 @@ path = ../../indexer/indexer_tests; sourceTree = ""; }; - 670D04A71B0BA8410013A7AC /* old */ = { - isa = PBXGroup; - children = ( - 670D04A81B0BA8580013A7AC /* feature_loader_101.cpp */, - 670D04A91B0BA8580013A7AC /* feature_loader_101.hpp */, - 670D04AA1B0BA8580013A7AC /* interval_index_101.hpp */, - ); - path = old; - sourceTree = ""; - }; 675340911A3F53CB00A0A8C3 = { isa = PBXGroup; children = ( @@ -737,7 +721,6 @@ 347F33761C454242009758CC /* trie_builder.hpp */, 347F33771C454242009758CC /* trie_reader.hpp */, 347F33781C454242009758CC /* trie.hpp */, - 670D04A71B0BA8410013A7AC /* old */, 6758AECD1BB4413000C26E27 /* drules_selector_parser.cpp */, 6758AECE1BB4413000C26E27 /* drules_selector_parser.hpp */, 6758AECF1BB4413000C26E27 /* drules_selector.cpp */, @@ -880,7 +863,6 @@ 6753410C1A3F540F00A0A8C3 /* drawing_rule_def.hpp in Headers */, 675341001A3F540F00A0A8C3 /* cell_id.hpp in Headers */, 3D74ABBC1EA67C1E0063A898 /* ftypes_mapping.hpp in Headers */, - 670D04AD1B0BA8580013A7AC /* interval_index_101.hpp in Headers */, 67BC92F51D21476500A4A378 /* string_slice.hpp in Headers */, F6F1DABE1F13D8B4006A69B7 /* ftraits.hpp in Headers */, 675341271A3F540F00A0A8C3 /* features_vector.hpp in Headers */, @@ -924,7 +906,6 @@ 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 */, 675341081A3F540F00A0A8C3 /* data_factory.hpp in Headers */, 6753410A1A3F540F00A0A8C3 /* data_header.hpp in Headers */, @@ -1109,7 +1090,6 @@ 3D0AEAFA1FBAF9E900AD042B /* test_with_custom_mwms.cpp in Sources */, 340DF9D01C1FF04D00B5C7EC /* osm_editor.cpp in Sources */, 67F183731BD4FCF500AB1840 /* map_style.cpp in Sources */, - 670D04AB1B0BA8580013A7AC /* feature_loader_101.cpp in Sources */, 6758AED31BB4413000C26E27 /* drules_selector.cpp in Sources */, 6753411A1A3F540F00A0A8C3 /* feature_impl.cpp in Sources */, 56C74C1C1C749E4700B71B9F /* categories_holder_loader.cpp in Sources */,