Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mapsme/omim.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortatiana-yan <tatiana.kondakova@gmail.com>2019-04-11 13:09:23 +0300
committermpimenov <mpimenov@users.noreply.github.com>2019-04-12 13:30:41 +0300
commitd044e4c0d66b69ede5a64cabf46cf473daa1a1ee (patch)
treec8ebc2aaa946147e56f8dd681cbb85775e814ba9 /generator
parentc198137d69f40c5fe17a399c06e2d2934109d8b1 (diff)
[generator] Create GetUgcForFeature method to reuse it for ugc and rating sections build.
Diffstat (limited to 'generator')
-rw-r--r--generator/ugc_section_builder.cpp13
-rw-r--r--generator/ugc_translator.cpp20
-rw-r--r--generator/ugc_translator.hpp9
3 files changed, 27 insertions, 15 deletions
diff --git a/generator/ugc_section_builder.cpp b/generator/ugc_section_builder.cpp
index af0aad89f9..43cf93e032 100644
--- a/generator/ugc_section_builder.cpp
+++ b/generator/ugc_section_builder.cpp
@@ -8,7 +8,6 @@
#include "indexer/feature_data.hpp"
#include "indexer/feature_processor.hpp"
-#include "indexer/ftraits.hpp"
#include "base/geo_object_id.hpp"
@@ -34,22 +33,12 @@ bool BuildUgcMwmSection(std::string const & srcDbFilename, std::string const & m
std::vector<IndexUGC> content;
feature::ForEachFromDat(mwmFile, [&](FeatureType & f, uint32_t featureId) {
- auto const optItem = ftraits::UGC::GetValue(feature::TypesHolder(f));
- if (!optItem)
- return;
-
- if (!ftraits::UGC::IsUGCAvailable(optItem->m_mask))
- return;
-
auto const it = featureToOsmId.find(featureId);
CHECK(it != featureToOsmId.cend() && it->second.size() != 0,
("FeatureID", featureId, "is not found in", osmToFeatureFilename));
ugc::UGC result;
- if (!translator.TranslateUGC(it->second[0], result))
- return;
-
- if (result.IsEmpty())
+ if (!GetUgcForFeature(it->second[0], feature::TypesHolder(f), translator, result))
return;
content.emplace_back(featureId, result);
diff --git a/generator/ugc_translator.cpp b/generator/ugc_translator.cpp
index 6f2906b2fd..eac3983df7 100644
--- a/generator/ugc_translator.cpp
+++ b/generator/ugc_translator.cpp
@@ -1,9 +1,9 @@
#include "generator/ugc_translator.hpp"
-#include "generator/ugc_db.hpp"
-
#include "ugc/serdes_json.hpp"
+#include "indexer/ftraits.hpp"
+
#include "coding/string_utf8_multilang.hpp"
#include "base/string_utils.hpp"
@@ -51,4 +51,20 @@ void UGCTranslator::CreateDb(std::string const & data)
{
CHECK(m_db.Exec(data), ());
}
+
+bool GetUgcForFeature(base::GeoObjectId const & osmId, feature::TypesHolder const & th,
+ UGCTranslator & translator, ugc::UGC & result)
+{
+ auto const optItem = ftraits::UGC::GetValue(th);
+ if (!optItem)
+ return false;
+
+ if (!ftraits::UGC::IsUGCAvailable(optItem->m_mask))
+ return false;
+
+ if (!translator.TranslateUGC(osmId, result))
+ return false;
+
+ return !result.IsEmpty();
+}
} // namespace generator
diff --git a/generator/ugc_translator.hpp b/generator/ugc_translator.hpp
index 2d60861662..eeb8303736 100644
--- a/generator/ugc_translator.hpp
+++ b/generator/ugc_translator.hpp
@@ -1,11 +1,15 @@
#pragma once
-#include "ugc_db.hpp"
+#include "generator/ugc_db.hpp"
#include "ugc/types.hpp"
+#include "indexer/feature_data.hpp"
+
#include "base/geo_object_id.hpp"
+#include <string>
+
namespace generator
{
class UGCTranslator
@@ -22,4 +26,7 @@ public:
private:
UGCDB m_db;
};
+
+bool GetUgcForFeature(base::GeoObjectId const & osmId, feature::TypesHolder const & th,
+ UGCTranslator & translator, ugc::UGC & result);
} // namespace generator