From 4ccf58bdb2a041f26fbe9238d5bbf2fd59721dc7 Mon Sep 17 00:00:00 2001 From: Vladimir Byko-Ianko Date: Fri, 19 Oct 2018 15:07:01 +0300 Subject: [PATCH] [routing] Review fixes. --- generator/generator_tool/generator_tool.cpp | 1 + generator/maxspeed_builder.cpp | 31 +++++++++------------ generator/maxspeed_builder.hpp | 2 +- generator/translator_planet.cpp | 2 +- 4 files changed, 16 insertions(+), 20 deletions(-) diff --git a/generator/generator_tool/generator_tool.cpp b/generator/generator_tool/generator_tool.cpp index 576739cfe2..246d3737b1 100644 --- a/generator/generator_tool/generator_tool.cpp +++ b/generator/generator_tool/generator_tool.cpp @@ -137,6 +137,7 @@ DEFINE_bool(generate_cameras, false, "Generate section with speed cameras info." DEFINE_bool( make_city_roads, false, "Calculates which roads lie inside cities and makes a section with ids of these roads."); +DEFINE_bool(generate_maxspeed, false, "Generate section with maxspeed of road features."); // Sponsored-related. DEFINE_string(booking_data, "", "Path to booking data in .tsv format."); diff --git a/generator/maxspeed_builder.cpp b/generator/maxspeed_builder.cpp index 2a71937c7e..2982ee1e06 100644 --- a/generator/maxspeed_builder.cpp +++ b/generator/maxspeed_builder.cpp @@ -13,7 +13,7 @@ namespace feature using namespace base; using namespace std; -void MaxspeedBuilder::operator()(OsmElement const & p) +void MaxspeedBuilder::Process(OsmElement const & p) { ostringstream ss; ss << p.id << ","; @@ -24,17 +24,16 @@ void MaxspeedBuilder::operator()(OsmElement const & p) for (auto const & t : tags) { - if (t.key == string("maxspeed")) + if (t.key == "maxspeed") { ss << t.value; m_data.push_back(ss.str()); return; } - if (t.key == string("maxspeed:forward")) + if (t.key == "maxspeed:forward") maxspeedForward = t.value; - - if (t.key == string("maxspeed:backward")) + else if (t.key == "maxspeed:backward") maxspeedBackward = t.value; } @@ -50,22 +49,18 @@ void MaxspeedBuilder::operator()(OsmElement const & p) void MaxspeedBuilder::Flush() { - try - { - LOG(LINFO, ("Saving maxspeed tag values to", m_filePath)); - ofstream stream(m_filePath); + LOG(LINFO, ("Saving maxspeed tag values to", m_filePath)); + ofstream stream(m_filePath); - if (!stream.is_open()) - LOG(LERROR, ("Cannot open file", m_filePath)); + if (!stream.is_open()) + LOG(LERROR, ("Cannot open file", m_filePath)); - for (auto const & s : m_data) - stream << s << '\n'; + for (auto const & s : m_data) + stream << s << '\n'; + if (stream.fail()) + LOG(LERROR, ("Cannot write to file", m_filePath)); + else LOG(LINFO, ("Wrote", m_data.size(), "maxspeed tags to", m_filePath)); - } - catch (RootException const & e) - { - LOG(LERROR, ("An exception happened while saving tags to", m_filePath, ":", e.what())); - } } } // namespace feature diff --git a/generator/maxspeed_builder.hpp b/generator/maxspeed_builder.hpp index 563d4a5af5..d0f900ccfa 100644 --- a/generator/maxspeed_builder.hpp +++ b/generator/maxspeed_builder.hpp @@ -16,7 +16,7 @@ public: explicit MaxspeedBuilder(std::string const & filePath) : m_filePath(filePath) {} ~MaxspeedBuilder() { Flush(); } - void operator()(OsmElement const & el); + void Process(OsmElement const & el); private: void Flush(); diff --git a/generator/translator_planet.cpp b/generator/translator_planet.cpp index 568bfce289..ab09e0aa4f 100644 --- a/generator/translator_planet.cpp +++ b/generator/translator_planet.cpp @@ -97,7 +97,7 @@ void TranslatorPlanet::EmitElement(OsmElement * p) ft.SetOsmId(base::MakeOsmWay(p->id)); - m_maxspeedBuilder(*p); + m_maxspeedBuilder.Process(*p); bool isCoastline = (m_coastType != 0 && params.IsTypeExist(m_coastType));