From a5b97c77b982969e0eec4b31fb66af9c624707ba Mon Sep 17 00:00:00 2001 From: Maxim Pimenov Date: Fri, 24 Jul 2015 17:06:55 +0300 Subject: [omim] [search] Remove redundant namespaces. --- coding/coding_tests/trie_test.cpp | 22 ++++++--------- coding/trie.hpp | 8 +----- coding/trie_builder.hpp | 12 ++++---- coding/trie_reader.hpp | 4 --- generator/dumper.cpp | 13 ++++----- indexer/search_index_builder.cpp | 36 ++++++++++++------------ indexer/search_trie.hpp | 26 ++++++++--------- search/feature_offset_match.hpp | 59 +++++++++++++++++---------------------- search/retrieval.cpp | 8 +++--- search/search_query.cpp | 17 +++++------ 10 files changed, 91 insertions(+), 114 deletions(-) diff --git a/coding/coding_tests/trie_test.cpp b/coding/coding_tests/trie_test.cpp index 13352ab120..8be73eebae 100644 --- a/coding/coding_tests/trie_test.cpp +++ b/coding/coding_tests/trie_test.cpp @@ -88,8 +88,7 @@ struct KeyValuePairBackInserter { vector m_v; template - void operator() (StringT const & s, - trie::reader::FixedSizeValueReader<4>::ValueType const & rawValue) + void operator()(StringT const & s, trie::FixedSizeValueReader<4>::ValueType const & rawValue) { uint32_t value; memcpy(&value, &rawValue, 4); @@ -175,7 +174,7 @@ UNIT_TEST(TrieBuilder_WriteNode_Smoke) }; CharValueList valueList("123"); - trie::builder::WriteNode(sink, 0, valueList, &children[0], &children[0] + ARRAY_SIZE(children)); + trie::WriteNode(sink, 0, valueList, &children[0], &children[0] + ARRAY_SIZE(children)); uint8_t const expected [] = { BOOST_BINARY(11000101), // Header: [0b11] [0b000101] @@ -244,20 +243,17 @@ UNIT_TEST(TrieBuilder_Build) vector serial; PushBackByteSink > sink(serial); - trie::Build >, typename vector::iterator, - trie::builder::MaxValueEdgeBuilder, Uint32ValueList>( - sink, v.begin(), v.end(), trie::builder::MaxValueEdgeBuilder()); + trie::Build>, typename vector::iterator, + trie::MaxValueEdgeBuilder, Uint32ValueList>( + sink, v.begin(), v.end(), trie::MaxValueEdgeBuilder()); reverse(serial.begin(), serial.end()); // LOG(LINFO, (serial.size(), vs)); MemReader memReader = MemReader(&serial[0], serial.size()); - typedef trie::Iterator< - trie::reader::FixedSizeValueReader<4>::ValueType, - trie::reader::FixedSizeValueReader<1>::ValueType - > IteratorType; - unique_ptr const root(trie::reader::ReadTrie(memReader, - trie::reader::FixedSizeValueReader<4>(), - trie::reader::FixedSizeValueReader<1>())); + typedef trie::Iterator::ValueType, + trie::FixedSizeValueReader<1>::ValueType> IteratorType; + unique_ptr const root(trie::ReadTrie(memReader, trie::FixedSizeValueReader<4>(), + trie::FixedSizeValueReader<1>())); vector res; KeyValuePairBackInserter f; trie::ForEachRef(*root, f, vector()); diff --git a/coding/trie.hpp b/coding/trie.hpp index 305d4d8278..0dbb02f679 100644 --- a/coding/trie.hpp +++ b/coding/trie.hpp @@ -1,9 +1,8 @@ #pragma once -#include "base/base.hpp" #include "base/assert.hpp" +#include "base/base.hpp" #include "base/buffer_vector.hpp" -//#include "../base/object_tracker.hpp" #include "std/unique_ptr.hpp" @@ -40,9 +39,6 @@ public: virtual Iterator * GoToEdge(size_t i) const = 0; }; -namespace reader -{ - struct EmptyValueReader { typedef unsigned char ValueType; @@ -69,8 +65,6 @@ struct FixedSizeValueReader } }; -} // namespace trie::reader - template void ForEachRef(Iterator const & iter, F & f, StringT const & s) { diff --git a/coding/trie_builder.hpp b/coding/trie_builder.hpp index e04faa8756..b23e8fbcc2 100644 --- a/coding/trie_builder.hpp +++ b/coding/trie_builder.hpp @@ -38,10 +38,10 @@ // [edge value] // [child size]: if the child is not the last one when reading + namespace trie { -namespace builder -{ + template void WriteNode(SinkT & sink, TrieChar baseChar, ValueListT const & valueList, ChildIterT const begChild, ChildIterT const endChild, bool isRoot = false) @@ -227,13 +227,11 @@ struct MaxValueEdgeBuilder } }; -} // namespace builder - template void Build(SinkT & sink, IterT const beg, IterT const end, EdgeBuilderT const & edgeBuilder) { typedef buffer_vector TrieString; - typedef builder::NodeInfo NodeInfoT; + typedef NodeInfo NodeInfoT; buffer_vector nodes; nodes.push_back(NodeInfoT(sink.Pos(), DEFAULT_CHAR, edgeBuilder)); @@ -256,7 +254,7 @@ void Build(SinkT & sink, IterT const beg, IterT const end, EdgeBuilderT const & while (nCommon < min(key.size(), prevKey.size()) && prevKey[nCommon] == key[nCommon]) ++nCommon; - builder::PopNodes(sink, nodes, nodes.size() - nCommon - 1); // Root is also a common node. + PopNodes(sink, nodes, nodes.size() - nCommon - 1); // Root is also a common node. uint64_t const pos = sink.Pos(); for (size_t i = nCommon; i < key.size(); ++i) @@ -270,7 +268,7 @@ void Build(SinkT & sink, IterT const beg, IterT const end, EdgeBuilderT const & } // Pop all the nodes from the stack. - builder::PopNodes(sink, nodes, nodes.size() - 1); + PopNodes(sink, nodes, nodes.size() - 1); // Write the root. WriteNodeReverse(sink, DEFAULT_CHAR /* baseChar */, nodes.back(), true /* isRoot */); diff --git a/coding/trie_reader.hpp b/coding/trie_reader.hpp index 3d988c7118..ac45e001b2 100644 --- a/coding/trie_reader.hpp +++ b/coding/trie_reader.hpp @@ -8,9 +8,6 @@ namespace trie { -namespace reader -{ - template class LeafIterator0 : public Iterator { @@ -211,5 +208,4 @@ ReadTrie(ReaderT const & reader, reader, valueReader, edgeValueReader, DEFAULT_CHAR); } -} // namespace trie::reader } // namespace trie diff --git a/generator/dumper.cpp b/generator/dumper.cpp index 73c14cfcbc..90554d24dc 100644 --- a/generator/dumper.cpp +++ b/generator/dumper.cpp @@ -164,7 +164,7 @@ namespace feature SearchTokensCollector() : m_currentS(), m_currentCount(0) {} - void operator() (strings::UniString const & s, search::trie::ValueReader::ValueType const &) + void operator()(strings::UniString const & s, trie::ValueReader::ValueType const &) { if (m_currentS == s) { @@ -198,15 +198,14 @@ namespace feature { FilesContainerR container(new FileReader(fPath)); feature::DataHeader header(container); - serial::CodingParams cp(search::GetCPForTrie(header.GetDefCodingParams())); + serial::CodingParams cp(trie::GetCodingParams(header.GetDefCodingParams())); - unique_ptr const pTrieRoot( - ::trie::reader::ReadTrie(container.GetReader(SEARCH_INDEX_FILE_TAG), - search::trie::ValueReader(cp), - search::trie::EdgeValueReader())); + unique_ptr const pTrieRoot( + trie::ReadTrie(container.GetReader(SEARCH_INDEX_FILE_TAG), trie::ValueReader(cp), + trie::EdgeValueReader())); SearchTokensCollector f; - ::trie::ForEachRef(*pTrieRoot, f, strings::UniString()); + trie::ForEachRef(*pTrieRoot, f, strings::UniString()); f.Finish(); while (!f.tokens.empty()) diff --git a/indexer/search_index_builder.cpp b/indexer/search_index_builder.cpp index 67dc33cc95..2f20e25647 100644 --- a/indexer/search_index_builder.cpp +++ b/indexer/search_index_builder.cpp @@ -1,15 +1,15 @@ -#include "indexer/search_index_builder.hpp" +#include "indexer/categories_holder.hpp" +#include "indexer/classificator.hpp" +#include "indexer/feature_algo.hpp" #include "indexer/feature_utils.hpp" +#include "indexer/feature_visibility.hpp" #include "indexer/features_vector.hpp" #include "indexer/search_delimiters.hpp" -#include "indexer/search_trie.hpp" +#include "indexer/search_index_builder.hpp" #include "indexer/search_string_utils.hpp" +#include "indexer/search_trie.hpp" #include "indexer/string_file.hpp" #include "indexer/string_file_values.hpp" -#include "indexer/classificator.hpp" -#include "indexer/feature_visibility.hpp" -#include "indexer/categories_holder.hpp" -#include "indexer/feature_algo.hpp" #include "../search/search_common.hpp" // for MAX_TOKENS constant @@ -17,16 +17,16 @@ #include "platform/platform.hpp" +#include "coding/reader_writer_ops.hpp" #include "coding/trie_builder.hpp" #include "coding/writer.hpp" -#include "coding/reader_writer_ops.hpp" #include "base/assert.hpp" -#include "base/timer.hpp" -#include "base/scope_guard.hpp" -#include "base/string_utils.hpp" #include "base/logging.hpp" +#include "base/scope_guard.hpp" #include "base/stl_add.hpp" +#include "base/string_utils.hpp" +#include "base/timer.hpp" #include "std/algorithm.hpp" #include "std/fstream.hpp" @@ -153,7 +153,7 @@ struct ValueBuilder; template <> struct ValueBuilder { - typedef search::trie::ValueReader SaverT; + typedef trie::ValueReader SaverT; SaverT m_valueSaver; ValueBuilder(serial::CodingParams const & cp) : m_valueSaver(cp) {} @@ -193,7 +193,7 @@ class FeatureInserter CategoriesHolder const & m_categories; typedef typename StringsFileT::ValueT ValueT; - typedef search::trie::ValueReader SaverT; + typedef trie::ValueReader SaverT; pair m_scales; @@ -385,7 +385,7 @@ void BuildSearchIndex(FilesContainerR const & cont, CategoriesHolder const & cat FeaturesVectorTest features(cont); feature::DataHeader const & header = features.GetHeader(); - serial::CodingParams cp(search::GetCPForTrie(header.GetDefCodingParams())); + serial::CodingParams cp(trie::GetCodingParams(header.GetDefCodingParams())); ValueBuilder valueBuilder(cp); unique_ptr synonyms; @@ -401,8 +401,8 @@ void BuildSearchIndex(FilesContainerR const & cont, CategoriesHolder const & cat names.OpenForRead(); trie::Build::IteratorT, - trie::builder::EmptyEdgeBuilder, ValueList>( - writer, names.Begin(), names.End(), trie::builder::EmptyEdgeBuilder()); + trie::EmptyEdgeBuilder, ValueList>( + writer, names.Begin(), names.End(), trie::EmptyEdgeBuilder()); // at this point all readers of StringsFile should be dead } @@ -518,9 +518,9 @@ void BuildCompressedSearchIndex(FilesContainerR & container, Writer & indexWrite LOG(LINFO, ("End sorting strings:", timer.ElapsedSeconds())); stringsFile.OpenForRead(); - trie::Build::IteratorT, - trie::builder::EmptyEdgeBuilder, ValueList>( - indexWriter, stringsFile.Begin(), stringsFile.End(), trie::builder::EmptyEdgeBuilder()); + trie::Build::IteratorT, trie::EmptyEdgeBuilder, + ValueList>(indexWriter, stringsFile.Begin(), stringsFile.End(), + trie::EmptyEdgeBuilder()); LOG(LINFO, ("End building compressed search index, elapsed seconds:", timer.ElapsedSeconds())); } diff --git a/indexer/search_trie.hpp b/indexer/search_trie.hpp index 1840d592c2..27001b34dd 100644 --- a/indexer/search_trie.hpp +++ b/indexer/search_trie.hpp @@ -9,6 +9,10 @@ namespace search { +static const uint8_t CATEGORIES_LANG = 128; +static const uint8_t POINT_CODING_BITS = 20; +} // namespace search + namespace trie { @@ -42,19 +46,15 @@ public: } }; -typedef ::trie::reader::EmptyValueReader EdgeValueReader; +typedef EmptyValueReader EdgeValueReader; -} // namespace search::trie +typedef trie::Iterator + DefaultIterator; - typedef ::trie::Iterator< - trie::ValueReader::ValueType, - trie::EdgeValueReader::ValueType> TrieIterator; - - static const uint8_t CATEGORIES_LANG = 128; - static const uint8_t POINT_CODING_BITS = 20; +inline serial::CodingParams GetCodingParams(serial::CodingParams const & orig) +{ + return serial::CodingParams(search::POINT_CODING_BITS, + PointU2PointD(orig.GetBasePoint(), orig.GetCoordBits())); +} - inline serial::CodingParams GetCPForTrie(serial::CodingParams const & orig) - { - return serial::CodingParams(POINT_CODING_BITS, PointU2PointD(orig.GetBasePoint(), orig.GetCoordBits())); - } -} // namespace search +} // namespace trie diff --git a/search/feature_offset_match.hpp b/search/feature_offset_match.hpp index 8e25248250..c8b06203cd 100644 --- a/search/feature_offset_match.hpp +++ b/search/feature_offset_match.hpp @@ -5,19 +5,17 @@ #include "indexer/search_trie.hpp" -#include "base/string_utils.hpp" -#include "base/stl_add.hpp" -#include "base/scope_guard.hpp" #include "base/mutex.hpp" +#include "base/scope_guard.hpp" +#include "base/stl_add.hpp" +#include "base/string_utils.hpp" #include "std/algorithm.hpp" +#include "std/target_os.hpp" #include "std/unique_ptr.hpp" #include "std/unordered_set.hpp" #include "std/utility.hpp" #include "std/vector.hpp" -#include "std/target_os.hpp" - -//#include "../sparsehash/dense_hash_set.hpp" namespace search @@ -34,15 +32,15 @@ size_t CalcEqualLength(SrcIterT b, SrcIterT e, CompIterT bC, CompIterT eC) return count; } -inline TrieIterator * MoveTrieIteratorToString(TrieIterator const & trieRoot, - strings::UniString const & queryS, - size_t & symbolsMatched, - bool & bFullEdgeMatched) +inline trie::DefaultIterator * MoveTrieIteratorToString(trie::DefaultIterator const & trieRoot, + strings::UniString const & queryS, + size_t & symbolsMatched, + bool & bFullEdgeMatched) { symbolsMatched = 0; bFullEdgeMatched = false; - unique_ptr pIter(trieRoot.Clone()); + unique_ptr pIter(trieRoot.Clone()); size_t const szQuery = queryS.size(); @@ -100,19 +98,16 @@ namespace } template -void FullMatchInTrie(TrieIterator const & trieRoot, - strings::UniChar const * rootPrefix, - size_t rootPrefixSize, - strings::UniString s, - F & f) +void FullMatchInTrie(trie::DefaultIterator const & trieRoot, strings::UniChar const * rootPrefix, + size_t rootPrefixSize, strings::UniString s, F & f) { if (!CheckMatchString(rootPrefix, rootPrefixSize, s)) return; size_t symbolsMatched = 0; bool bFullEdgeMatched; - unique_ptr const pIter( - MoveTrieIteratorToString(trieRoot, s, symbolsMatched, bFullEdgeMatched)); + unique_ptr const pIter( + MoveTrieIteratorToString(trieRoot, s, symbolsMatched, bFullEdgeMatched)); if (!pIter || (!s.empty() && !bFullEdgeMatched) || symbolsMatched != s.size()) return; @@ -129,21 +124,18 @@ void FullMatchInTrie(TrieIterator const & trieRoot, } template -void PrefixMatchInTrie(TrieIterator const & trieRoot, - strings::UniChar const * rootPrefix, - size_t rootPrefixSize, - strings::UniString s, - F & f) +void PrefixMatchInTrie(trie::DefaultIterator const & trieRoot, strings::UniChar const * rootPrefix, + size_t rootPrefixSize, strings::UniString s, F & f) { if (!CheckMatchString(rootPrefix, rootPrefixSize, s)) return; - typedef vector QueueT; + typedef vector QueueT; QueueT trieQueue; { size_t symbolsMatched = 0; bool bFullEdgeMatched; - search::TrieIterator * pRootIter = + trie::DefaultIterator * pRootIter = MoveTrieIteratorToString(trieRoot, s, symbolsMatched, bFullEdgeMatched); UNUSED_VALUE(symbolsMatched); @@ -162,7 +154,7 @@ void PrefixMatchInTrie(TrieIterator const & trieRoot, { // Next 2 lines don't throw any exceptions while moving // ownership from container to smart pointer. - unique_ptr const pIter(trieQueue.back()); + unique_ptr const pIter(trieQueue.back()); trieQueue.pop_back(); for (size_t i = 0; i < pIter->m_value.size(); ++i) @@ -237,11 +229,12 @@ public: struct TrieRootPrefix { - TrieIterator const & m_root; + trie::DefaultIterator const & m_root; strings::UniChar const * m_prefix; size_t m_prefixSize; - TrieRootPrefix(TrieIterator const & root, TrieIterator::Edge::EdgeStrT const & edge) + TrieRootPrefix(trie::DefaultIterator const & root, + trie::DefaultIterator::Edge::EdgeStrT const & edge) : m_root(root) { if (edge.size() == 1) @@ -350,7 +343,7 @@ void MatchTokensAndPrefixInTrie(vector const // token from a search query. // *NOTE* query prefix will be treated as a complete token in the function. template -bool MatchCategoriesInTrie(SearchQueryParams const & params, TrieIterator const & trieRoot, +bool MatchCategoriesInTrie(SearchQueryParams const & params, trie::DefaultIterator const & trieRoot, THolder && holder) { ASSERT_LESS(trieRoot.m_edge.size(), numeric_limits::max(), ()); @@ -361,7 +354,7 @@ bool MatchCategoriesInTrie(SearchQueryParams const & params, TrieIterator const ASSERT_GREATER_OR_EQUAL(edge.size(), 1, ()); if (edge[0] == search::CATEGORIES_LANG) { - unique_ptr const catRoot(trieRoot.GoToEdge(langIx)); + unique_ptr const catRoot(trieRoot.GoToEdge(langIx)); MatchTokensInTrie(params.m_tokens, TrieRootPrefix(*catRoot, edge), holder); // Last token's prefix is used as a complete token here, to @@ -379,7 +372,7 @@ bool MatchCategoriesInTrie(SearchQueryParams const & params, TrieIterator const // Calls toDo with trie root prefix and language code on each language // allowed by params. template -void ForEachLangPrefix(SearchQueryParams const & params, TrieIterator const & trieRoot, +void ForEachLangPrefix(SearchQueryParams const & params, trie::DefaultIterator const & trieRoot, ToDo && toDo) { ASSERT_LESS(trieRoot.m_edge.size(), numeric_limits::max(), ()); @@ -391,7 +384,7 @@ void ForEachLangPrefix(SearchQueryParams const & params, TrieIterator const & tr int8_t const lang = static_cast(edge[0]); if (edge[0] < search::CATEGORIES_LANG && params.IsLangExist(lang)) { - unique_ptr const langRoot(trieRoot.GoToEdge(langIx)); + unique_ptr const langRoot(trieRoot.GoToEdge(langIx)); TrieRootPrefix langPrefix(*langRoot, edge); toDo(langPrefix, lang); } @@ -401,7 +394,7 @@ void ForEachLangPrefix(SearchQueryParams const & params, TrieIterator const & tr // Calls toDo for each feature whose description contains *ALL* tokens from a search query. // Each feature will be passed to toDo only once. template -void MatchFeaturesInTrie(SearchQueryParams const & params, TrieIterator const & trieRoot, +void MatchFeaturesInTrie(SearchQueryParams const & params, trie::DefaultIterator const & trieRoot, TFilter const & filter, ToDo && toDo) { TrieValuesHolder categoriesHolder(filter); diff --git a/search/retrieval.cpp b/search/retrieval.cpp index ba8dc33769..fa0941c92b 100644 --- a/search/retrieval.cpp +++ b/search/retrieval.cpp @@ -26,11 +26,11 @@ void RetrieveAddressFeatures(MwmSet::MwmHandle const & handle, SearchQueryParams { auto * value = handle.GetValue(); ASSERT(value, ()); - serial::CodingParams codingParams(GetCPForTrie(value->GetHeader().GetDefCodingParams())); + serial::CodingParams codingParams(trie::GetCodingParams(value->GetHeader().GetDefCodingParams())); ModelReaderPtr searchReader = value->m_cont.GetReader(SEARCH_INDEX_FILE_TAG); - unique_ptr const trieRoot( - ::trie::reader::ReadTrie(SubReaderWrapper(searchReader.GetPtr()), - trie::ValueReader(codingParams), trie::EdgeValueReader())); + unique_ptr const trieRoot( + trie::ReadTrie(SubReaderWrapper(searchReader.GetPtr()), + trie::ValueReader(codingParams), trie::EdgeValueReader())); featureIds.clear(); auto collector = [&](trie::ValueReader::ValueType const & value) diff --git a/search/search_query.cpp b/search/search_query.cpp index 5579035eca..d3df2d9dc2 100644 --- a/search/search_query.cpp +++ b/search/search_query.cpp @@ -1739,12 +1739,13 @@ void Query::SearchLocality(MwmValue * pMwm, impl::Locality & res1, impl::Region SearchQueryParams params; InitParams(true /* localitySearch */, params); - serial::CodingParams cp(GetCPForTrie(pMwm->GetHeader().GetDefCodingParams())); + serial::CodingParams cp(trie::GetCodingParams(pMwm->GetHeader().GetDefCodingParams())); ModelReaderPtr searchReader = pMwm->m_cont.GetReader(SEARCH_INDEX_FILE_TAG); - unique_ptr const trieRoot( - ::trie::reader::ReadTrie(SubReaderWrapper(searchReader.GetPtr()), - trie::ValueReader(cp), trie::EdgeValueReader())); + + unique_ptr const trieRoot( + trie::ReadTrie(SubReaderWrapper(searchReader.GetPtr()), trie::ValueReader(cp), + trie::EdgeValueReader())); ForEachLangPrefix(params, *trieRoot, [&](TrieRootPrefix & langRoot, int8_t lang) { @@ -1851,11 +1852,11 @@ void Query::SearchInMWM(Index::MwmHandle const & mwmHandle, SearchQueryParams co if (isWorld && !m_worldSearch) return; - serial::CodingParams cp(GetCPForTrie(header.GetDefCodingParams())); + serial::CodingParams cp(trie::GetCodingParams(header.GetDefCodingParams())); ModelReaderPtr searchReader = value->m_cont.GetReader(SEARCH_INDEX_FILE_TAG); - unique_ptr const trieRoot( - ::trie::reader::ReadTrie(SubReaderWrapper(searchReader.GetPtr()), - trie::ValueReader(cp), trie::EdgeValueReader())); + unique_ptr const trieRoot( + trie::ReadTrie(SubReaderWrapper(searchReader.GetPtr()), trie::ValueReader(cp), + trie::EdgeValueReader())); MwmSet::MwmId const mwmId = mwmHandle.GetId(); FeaturesFilter filter( (viewportId == DEFAULT_V || isWorld) ? 0 : &m_offsetsInViewport[viewportId][mwmId], *this); -- cgit v1.2.3