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:
authorAnatoly Serdtcev <serdtcev@maps.me>2019-02-08 11:22:50 +0300
committerAnatoly Serdtcev <serdtcev@maps.me>2019-02-08 11:22:50 +0300
commitd1ce5c1395b06a8de146dd7d4ec45ca63313df7c (patch)
tree5082152dbc9a3ba45fe91ef1b7b727c76db3d6cc /geocoder
parentc2d0fc4d1324a3f3c231480ba5d0c6401aff61e2 (diff)
[geocoder] Fix for review
Diffstat (limited to 'geocoder')
-rw-r--r--geocoder/geocoder.hpp6
-rw-r--r--geocoder/hierarchy_reader.cpp26
-rw-r--r--geocoder/hierarchy_reader.hpp2
-rw-r--r--geocoder/index.cpp4
-rw-r--r--geocoder/index.hpp3
5 files changed, 17 insertions, 24 deletions
diff --git a/geocoder/geocoder.hpp b/geocoder/geocoder.hpp
index ff6542afdd..8b4a74a95d 100644
--- a/geocoder/geocoder.hpp
+++ b/geocoder/geocoder.hpp
@@ -119,10 +119,8 @@ public:
std::vector<Layer> m_layers;
};
- explicit Geocoder(std::string const & pathToJsonHierarchy,
- unsigned int loadThreadsCount = std::thread::hardware_concurrency());
- explicit Geocoder(std::istream & jsonHierarchy,
- unsigned int loadThreadsCount = std::thread::hardware_concurrency());
+ explicit Geocoder(std::string const & pathToJsonHierarchy, unsigned int loadThreadsCount = 1);
+ explicit Geocoder(std::istream & jsonHierarchy, unsigned int loadThreadsCount = 1);
void ProcessQuery(std::string const & query, std::vector<Result> & results) const;
diff --git a/geocoder/hierarchy_reader.cpp b/geocoder/hierarchy_reader.cpp
index cee535707b..c59ff8b356 100644
--- a/geocoder/hierarchy_reader.cpp
+++ b/geocoder/hierarchy_reader.cpp
@@ -25,14 +25,14 @@ void operator+=(Hierarchy::ParsingStats & accumulator, Hierarchy::ParsingStats &
static_assert(sizeof(Hierarchy::ParsingStats) == sizeof(ValidationStats),
"Hierarchy::ParsingStats has been modified");
- accumulator.m_numLoaded += stats.m_numLoaded;
- accumulator.m_badJsons += stats.m_badJsons;
- accumulator.m_badOsmIds += stats.m_badOsmIds;
- accumulator.m_duplicateOsmIds += stats.m_duplicateOsmIds;
- accumulator.m_duplicateAddresses += stats.m_duplicateAddresses;
- accumulator.m_emptyAddresses += stats.m_emptyAddresses;
- accumulator.m_emptyNames += stats.m_emptyNames;
- accumulator.m_mismatchedNames += stats.m_mismatchedNames;
+ accumulator.m_numLoaded += stats.m_numLoaded;
+ accumulator.m_badJsons += stats.m_badJsons;
+ accumulator.m_badOsmIds += stats.m_badOsmIds;
+ accumulator.m_duplicateOsmIds += stats.m_duplicateOsmIds;
+ accumulator.m_duplicateAddresses += stats.m_duplicateAddresses;
+ accumulator.m_emptyAddresses += stats.m_emptyAddresses;
+ accumulator.m_emptyNames += stats.m_emptyNames;
+ accumulator.m_mismatchedNames += stats.m_mismatchedNames;
}
} // namespace
@@ -50,11 +50,9 @@ HierarchyReader::HierarchyReader(istream & in)
Hierarchy HierarchyReader::Read(unsigned int readersCount)
{
- LOG(LINFO, ("Reading entries..."));
+ CHECK_GREATER_OR_EQUAL(readersCount, 1, ());
- if (auto hardwareConcurrency = thread::hardware_concurrency())
- readersCount = min(hardwareConcurrency, readersCount);
- readersCount = max(1U, readersCount);
+ LOG(LINFO, ("Reading entries..."));
vector<multimap<base::GeoObjectId, Entry>> taskEntries(readersCount);
vector<ParsingStats> tasksStats(readersCount);
@@ -142,7 +140,7 @@ void HierarchyReader::CheckDuplicateOsmIds(vector<geocoder::Hierarchy::Entry> co
if (j != i + 1)
{
++stats.m_duplicateOsmIds;
- // todo Remove the cast when the hierarchies no longer contain negative keys.
+ // TODO: Remove the cast when the hierarchies no longer contain negative keys.
LOG(LDEBUG,
("Duplicate osm id:", static_cast<int64_t>(entries[i].m_osmId.GetEncodedId()), "(",
entries[i].m_osmId, ")", "occurs as a key in", j - i, "key-value entries."));
@@ -204,7 +202,7 @@ void HierarchyReader::DeserializeEntryMap(vector<string> const & linesBuffer, si
auto json = line.substr(p + 1);
Entry entry;
- // todo(@m) We should really write uints as uints.
+ // TODO: (@m) We should really write uints as uints.
auto const osmId = base::GeoObjectId(static_cast<uint64_t>(encodedId));
entry.m_osmId = osmId;
diff --git a/geocoder/hierarchy_reader.hpp b/geocoder/hierarchy_reader.hpp
index d434fff607..19701659f0 100644
--- a/geocoder/hierarchy_reader.hpp
+++ b/geocoder/hierarchy_reader.hpp
@@ -27,7 +27,7 @@ public:
explicit HierarchyReader(std::istream & jsonHierarchy);
// Read hierarchy file/stream concurrently in |readersCount| threads.
- Hierarchy Read(unsigned int readersCount = std::thread::hardware_concurrency());
+ Hierarchy Read(unsigned int readersCount = 1);
private:
void ReadEntryMap(std::multimap<base::GeoObjectId, Entry> & entries, ParsingStats & stats);
diff --git a/geocoder/index.cpp b/geocoder/index.cpp
index 60c565bf49..fa6bc2b178 100644
--- a/geocoder/index.cpp
+++ b/geocoder/index.cpp
@@ -26,9 +26,7 @@ namespace geocoder
Index::Index(Hierarchy const & hierarchy, unsigned int loadThreadsCount)
: m_docs(hierarchy.GetEntries())
{
- if (auto hardwareConcurrency = thread::hardware_concurrency())
- loadThreadsCount = min(hardwareConcurrency, loadThreadsCount);
- loadThreadsCount = max(1U, loadThreadsCount);
+ CHECK_GREATER_OR_EQUAL(loadThreadsCount, 1, ());
LOG(LINFO, ("Indexing hierarchy entries..."));
AddEntries();
diff --git a/geocoder/index.hpp b/geocoder/index.hpp
index 35e9e8d6cb..fb1cf51437 100644
--- a/geocoder/index.hpp
+++ b/geocoder/index.hpp
@@ -21,8 +21,7 @@ public:
// that the index was constructed from.
using DocId = std::vector<Doc>::size_type;
- explicit Index(Hierarchy const & hierarchy,
- unsigned int loadThreadsCount = std::thread::hardware_concurrency());
+ explicit Index(Hierarchy const & hierarchy, unsigned int loadThreadsCount = 1);
Doc const & GetDoc(DocId const id) const;