From 1e9b3d7835fdc8dd1d7c97ef8fd8fef1c4e6249e Mon Sep 17 00:00:00 2001 From: Alex Zolotarev Date: Wed, 24 Aug 2011 18:08:15 +0300 Subject: [linux][mac] Added mmap_reader when reading intermediate data --- generator/feature_generator.cpp | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'generator/feature_generator.cpp') diff --git a/generator/feature_generator.cpp b/generator/feature_generator.cpp index d2ef7c67de..c7bbabe577 100644 --- a/generator/feature_generator.cpp +++ b/generator/feature_generator.cpp @@ -11,6 +11,7 @@ #include "../indexer/cell_id.hpp" #include "../coding/varint.hpp" +#include "../coding/mmap_reader.hpp" #include "../base/assert.hpp" #include "../base/logging.hpp" @@ -18,6 +19,7 @@ #include "../std/bind.hpp" #include "../std/unordered_map.hpp" +#include "../std/target_os.hpp" namespace feature { @@ -189,16 +191,23 @@ void FeaturesCollector::operator() (FeatureBuilder1 const & fb) class points_in_file { +#ifdef OMIM_OS_WINDOWS FileReader m_file; +#else + MmapReader m_file; +#endif public: points_in_file(string const & name) : m_file(name) {} bool GetPoint(uint64_t id, double & lat, double & lng) const { +#ifdef OMIM_OS_WINDOWS LatLon ll; m_file.Read(id * sizeof(ll), &ll, sizeof(ll)); - +#else + LatLon const & ll = *reinterpret_cast(m_file.Data() + id * sizeof(ll)); +#endif // assume that valid coordinate is not (0, 0) if (ll.lat != 0.0 || ll.lon != 0.0) { -- cgit v1.2.3