From 453f1eccafca1a1036e931042a3e3cd82f7907e7 Mon Sep 17 00:00:00 2001 From: vng Date: Fri, 3 Oct 2014 21:37:02 +0300 Subject: [PATCH] Added mwm timestamp reading. --- indexer/mwm_version.cpp | 19 +++++++++++++++---- indexer/mwm_version.hpp | 6 ++++++ search/house_detector.cpp | 5 +---- 3 files changed, 22 insertions(+), 8 deletions(-) diff --git a/indexer/mwm_version.cpp b/indexer/mwm_version.cpp index acfcec028e..993623dddb 100644 --- a/indexer/mwm_version.cpp +++ b/indexer/mwm_version.cpp @@ -3,7 +3,7 @@ #include "../coding/varint.hpp" #include "../coding/writer.hpp" -#include "../coding/reader.hpp" +#include "../coding/reader_wrapper.hpp" #include "../base/timer.hpp" @@ -26,10 +26,8 @@ void WriteVersion(Writer & w) WriteVarUint(w, generatorStartTime); } -uint32_t ReadVersion(ModelReaderPtr const & r) +template uint32_t ReadVersionT(TSource & src) { - ReaderSource src(r); - size_t const prologSize = ARRAY_SIZE(MWM_PROLOG); char prolog[prologSize]; src.Read(prolog, prologSize); @@ -40,4 +38,17 @@ uint32_t ReadVersion(ModelReaderPtr const & r) return ReadVarUint(src); } +uint32_t ReadVersion(ModelReaderPtr const & r) +{ + ReaderSource src(r); + return ReadVersionT(src); +} + +uint32_t ReadTimestamp(ReaderSrc & src) +{ + (void)ReadVersionT(src); + + return ReadVarUint(src); +} + } diff --git a/indexer/mwm_version.hpp b/indexer/mwm_version.hpp index d99b11c4b2..a41e0b0c91 100644 --- a/indexer/mwm_version.hpp +++ b/indexer/mwm_version.hpp @@ -5,9 +5,15 @@ class ModelReaderPtr; class Writer; +class ReaderSrc; namespace ver { void WriteVersion(Writer & w); + + /// @return See feature::DataHeader::Version for more details. uint32_t ReadVersion(ModelReaderPtr const & r); + + /// @return Data timestamp in yymmdd format. + uint32_t ReadTimestamp(ReaderSrc & src); } diff --git a/search/house_detector.cpp b/search/house_detector.cpp index 6b21da4c53..eaceb91dd4 100644 --- a/search/house_detector.cpp +++ b/search/house_detector.cpp @@ -186,9 +186,6 @@ char const * STREET_TOKENS_SEPARATOR = "\t -,."; int const HN_NEARBY_DISTANCE = 4; double const STREET_CONNECTION_MAX_ANGLE = math::pi / 2.0; size_t const HN_COUNT_FOR_ODD_TEST = 16; -/// @todo We need FeatureType::BEST_GEOMETRY for tests (compare with ethalon), -/// but 15 - is enough for production code. -int const HOUSE_READING_SCALE = FeatureType::BEST_GEOMETRY; //double const HN_MIN_READ_OFFSET_M = 50.0; //int const HN_NEARBY_INDEX_RANGE = 5; double const HN_MAX_CONNECTION_DIST_M = 300.0; @@ -818,7 +815,7 @@ void HouseDetector::ReadHouse(FeatureType const & f, Street * st, ProjectionCalc HouseMapT::iterator const it = m_id2house.find(f.GetID()); bool const isNew = it == m_id2house.end(); - m2::PointD const pt = isNew ? f.GetLimitRect(HOUSE_READING_SCALE).Center() : it->second->GetPosition(); + m2::PointD const pt = isNew ? f.GetLimitRect(FeatureType::BEST_GEOMETRY).Center() : it->second->GetPosition(); HouseProjection pr; if (calc.GetProjection(pt, pr))