forked from organicmaps/organicmaps
[geocoder] Fix for review
This commit is contained in:
parent
c2d0fc4d13
commit
d1ce5c1395
5 changed files with 17 additions and 24 deletions
|
@ -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;
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue