diff options
author | Alex Zolotarev <deathbaba@gmail.com> | 2011-08-24 19:08:15 +0400 |
---|---|---|
committer | Alex Zolotarev <alex@maps.me> | 2015-09-23 01:22:18 +0300 |
commit | 1e9b3d7835fdc8dd1d7c97ef8fd8fef1c4e6249e (patch) | |
tree | 64364bf8f3fb50f59121da0bc1f1c78193abcfdc /generator/feature_generator.cpp | |
parent | b873ba9d81e3cdc977bca0b1a40bafa0c337f255 (diff) |
[linux][mac] Added mmap_reader when reading intermediate data
Diffstat (limited to 'generator/feature_generator.cpp')
-rw-r--r-- | generator/feature_generator.cpp | 11 |
1 files changed, 10 insertions, 1 deletions
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<LatLon const *>(m_file.Data() + id * sizeof(ll)); +#endif // assume that valid coordinate is not (0, 0) if (ll.lat != 0.0 || ll.lon != 0.0) { |