From 110926845ea15bb3b2f820bf5bb21a10f8bd2fbc Mon Sep 17 00:00:00 2001 From: Vladimir Byko-Ianko Date: Tue, 15 Nov 2016 10:38:50 +0300 Subject: [PATCH] Removing saving intermediate feature ids to csv file. --- generator/generate_info.hpp | 3 --- generator/generator.pro | 2 -- generator/generator_tool/generator_tool.cpp | 2 -- generator/osm_source.cpp | 13 +-------- generator/polygonizer.hpp | 26 ++++++------------ generator/sync_ofsteam.cpp | 30 --------------------- generator/sync_ofsteam.hpp | 23 ---------------- generator/world_map_generator.hpp | 3 +-- 8 files changed, 10 insertions(+), 92 deletions(-) delete mode 100644 generator/sync_ofsteam.cpp delete mode 100644 generator/sync_ofsteam.hpp diff --git a/generator/generate_info.hpp b/generator/generate_info.hpp index ccfe28dd09..e5b52becc1 100644 --- a/generator/generate_info.hpp +++ b/generator/generate_info.hpp @@ -38,9 +38,6 @@ struct GenerateInfo // File name for a file with restrictions in osm id terms. string m_restrictions; - // File name for a file with mapping from feature ids to osm ids. - // Note. One feature id maps to one or more osm ids. - string m_featureIdToOsmIds; NodeStorageType m_nodeStorageType; OsmSourceType m_osmFileType; diff --git a/generator/generator.pro b/generator/generator.pro index 2fd4d2a676..4c416eeed5 100644 --- a/generator/generator.pro +++ b/generator/generator.pro @@ -44,7 +44,6 @@ SOURCES += \ sponsored_scoring.cpp \ srtm_parser.cpp \ statistics.cpp \ - sync_ofsteam.cpp \ tesselator.cpp \ towns_dumper.cpp \ unpack_mwm.cpp \ @@ -87,7 +86,6 @@ HEADERS += \ sponsored_scoring.hpp \ srtm_parser.hpp \ statistics.hpp \ - sync_ofsteam.hpp \ tag_admixer.hpp \ tesselator.hpp \ towns_dumper.hpp \ diff --git a/generator/generator_tool/generator_tool.cpp b/generator/generator_tool/generator_tool.cpp index 96843e401b..817853d436 100644 --- a/generator/generator_tool/generator_tool.cpp +++ b/generator/generator_tool/generator_tool.cpp @@ -118,7 +118,6 @@ int main(int argc, char ** argv) genInfo.m_osmFileName = FLAGS_osm_file_name; genInfo.m_restrictions = FLAGS_restriction_name; - genInfo.m_featureIdToOsmIds = FLAGS_feature_ids_to_osm_ids_name; genInfo.m_failOnCoasts = FLAGS_fail_on_coasts; genInfo.m_preloadCache = FLAGS_preload_cache; genInfo.m_bookingDatafileName = FLAGS_booking_data; @@ -163,7 +162,6 @@ int main(int argc, char ** argv) LOG(LINFO, ("Generating final data ...")); genInfo.m_restrictions = FLAGS_restriction_name; - genInfo.m_featureIdToOsmIds = FLAGS_feature_ids_to_osm_ids_name; genInfo.m_splitByPolygons = FLAGS_split_by_polygons; genInfo.m_createWorld = FLAGS_generate_world; genInfo.m_makeCoasts = FLAGS_make_coasts; diff --git a/generator/osm_source.cpp b/generator/osm_source.cpp index 4e6695540e..c39fc229e8 100644 --- a/generator/osm_source.cpp +++ b/generator/osm_source.cpp @@ -8,7 +8,6 @@ #include "generator/osm_translator.hpp" #include "generator/osm_xml_source.hpp" #include "generator/polygonizer.hpp" -#include "generator/sync_ofsteam.hpp" #include "generator/tag_admixer.hpp" #include "generator/towns_dumper.hpp" #include "generator/world_map_generator.hpp" @@ -269,7 +268,6 @@ class MainFeaturesEmitter : public EmitterBase using TWorldGenerator = WorldMapGenerator; using TCountriesGenerator = CountryMapGenerator>; - generator::SyncOfstream m_featureIdToOsmIds; unique_ptr m_countries; unique_ptr m_world; @@ -337,17 +335,8 @@ public: m_coastsHolder.reset( new feature::FeaturesCollector(info.GetTmpFileName(WORLD_COASTS_FILE_NAME))); - string const featureIdToOsmIdsFile = info.GetIntermediateFileName(info.m_featureIdToOsmIds, ""); - LOG(LINFO, ("Saving mapping from feature ids to osm ids to", featureIdToOsmIdsFile)); - m_featureIdToOsmIds.Open(featureIdToOsmIdsFile); - if (!m_featureIdToOsmIds.IsOpened()) - { - LOG(LWARNING, - ("Cannot open", featureIdToOsmIdsFile, ". Feature ids to osm ids to map won't be saved.")); - } - if (info.m_splitByPolygons || !info.m_fileName.empty()) - m_countries = make_unique(info, m_featureIdToOsmIds); + m_countries = make_unique(info); if (info.m_createWorld) m_world.reset(new TWorldGenerator(info)); diff --git a/generator/polygonizer.hpp b/generator/polygonizer.hpp index 5b6f0ec5ba..f796a7e6aa 100644 --- a/generator/polygonizer.hpp +++ b/generator/polygonizer.hpp @@ -4,7 +4,6 @@ #include "generator/feature_builder.hpp" #include "generator/generate_info.hpp" #include "generator/osm_source.hpp" -#include "generator/sync_ofsteam.hpp" #include "indexer/feature_visibility.hpp" #include "indexer/cell_id.hpp" @@ -42,8 +41,6 @@ namespace feature vector m_Names; borders::CountriesContainerT m_countries; - generator::SyncOfstream & m_featureIdToOsmIds; - #if PARALLEL_POLYGONIZER QThreadPool m_ThreadPool; QSemaphore m_ThreadPoolSemaphore; @@ -51,8 +48,7 @@ namespace feature #endif public: - Polygonizer(feature::GenerateInfo const & info, generator::SyncOfstream & featureIdToOsmIds) - : m_info(info), m_featureIdToOsmIds(featureIdToOsmIds) + Polygonizer(feature::GenerateInfo const & info) : m_info(info) #if PARALLEL_POLYGONIZER , m_ThreadPoolSemaphore(m_ThreadPool.maxThreadCount() * 8) #endif @@ -122,14 +118,14 @@ namespace feature { case 0: break; - case 1: EmitFeature(vec[0], fb, m_featureIdToOsmIds); break; + case 1: EmitFeature(vec[0], fb); break; default: { #if PARALLEL_POLYGONIZER m_ThreadPoolSemaphore.acquire(); - m_ThreadPool.start(new PolygonizerTask(this, vec, fb, m_featureIdToOsmIds)); + m_ThreadPool.start(new PolygonizerTask(this, vec, fb)); #else - PolygonizerTask task(this, vec, fb, m_featureIdToOsmIds); + PolygonizerTask task(this, vec, fb); task.RunBase(); #endif } @@ -150,8 +146,7 @@ namespace feature #endif } - void EmitFeature(borders::CountryPolygons const * country, FeatureBuilder1 const & fb, - generator::SyncOfstream & featureIdToOsmIds) + void EmitFeature(borders::CountryPolygons const * country, FeatureBuilder1 const & fb) { #if PARALLEL_POLYGONIZER QMutexLocker mutexLocker(&m_EmitFeatureMutex); @@ -169,10 +164,7 @@ namespace feature m_currentNames += country->m_name; auto & bucket = *(m_Buckets[country->m_index]); - uint32_t const featureId = bucket(fb); - - if (fb.IsLine()) - featureIdToOsmIds.Write(featureId /* feature id of |fb| */, fb.GetOsmIds()); + bucket(fb); } vector const & Names() const @@ -191,11 +183,10 @@ namespace feature public: PolygonizerTask(Polygonizer * pPolygonizer, buffer_vector const & countries, - FeatureBuilder1 const & fb, generator::SyncOfstream & featureIdToOsmIds) + FeatureBuilder1 const & fb) : m_pPolygonizer(pPolygonizer) , m_Countries(countries) , m_fb(fb) - , m_featureIdToOsmIds(featureIdToOsmIds) { } @@ -207,7 +198,7 @@ namespace feature m_fb.ForEachGeometryPoint(doCheck); if (doCheck.m_belongs) - m_pPolygonizer->EmitFeature(m_Countries[i], m_fb, m_featureIdToOsmIds); + m_pPolygonizer->EmitFeature(m_Countries[i], m_fb); } } @@ -224,7 +215,6 @@ namespace feature Polygonizer * m_pPolygonizer; buffer_vector m_Countries; FeatureBuilder1 m_fb; - generator::SyncOfstream & m_featureIdToOsmIds; }; }; } diff --git a/generator/sync_ofsteam.cpp b/generator/sync_ofsteam.cpp deleted file mode 100644 index 885a737428..0000000000 --- a/generator/sync_ofsteam.cpp +++ /dev/null @@ -1,30 +0,0 @@ -#include "sync_ofsteam.hpp" - -#include "std/iostream.hpp" - -namespace generator -{ -void SyncOfstream::Open(string const & fullPath) -{ - lock_guard guard(m_mutex); - m_stream.open(fullPath, std::ofstream::out); -} - -bool SyncOfstream::IsOpened() -{ - lock_guard guard(m_mutex); - return m_stream.is_open() && !m_stream.fail(); -} - -void SyncOfstream::Write(uint32_t featureId, vector const & osmIds) -{ - if (!IsOpened()) - return; - - lock_guard guard(m_mutex); - m_stream << featureId; - for (osm::Id const & osmId : osmIds) - m_stream << "," << osmId.OsmId(); - m_stream << endl; -} -} // namespace generator diff --git a/generator/sync_ofsteam.hpp b/generator/sync_ofsteam.hpp deleted file mode 100644 index 856cdac6c1..0000000000 --- a/generator/sync_ofsteam.hpp +++ /dev/null @@ -1,23 +0,0 @@ -#pragma once - -#include "generator/osm_id.hpp" - -#include "std/fstream.hpp" -#include "std/mutex.hpp" -#include "std/string.hpp" -#include "std/vector.hpp" - -namespace generator -{ -class SyncOfstream -{ -public: - void Open(string const & fullPath); - bool IsOpened(); - void Write(uint32_t featureId, vector const & osmIds); - -private: - ofstream m_stream; - mutex m_mutex; -}; -} // namespace generator diff --git a/generator/world_map_generator.hpp b/generator/world_map_generator.hpp index 5cc9322ab6..cb2d4a73ff 100644 --- a/generator/world_map_generator.hpp +++ b/generator/world_map_generator.hpp @@ -312,8 +312,7 @@ class CountryMapGenerator FeatureOutT m_bucket; public: - CountryMapGenerator(feature::GenerateInfo const & info, generator::SyncOfstream & featureIdToOsmIds) - : m_bucket(info, featureIdToOsmIds) {} + CountryMapGenerator(feature::GenerateInfo const & info) : m_bucket(info) {} void operator()(FeatureBuilder1 fb) {