diff options
author | vng <viktor.govako@gmail.com> | 2015-11-17 18:38:39 +0300 |
---|---|---|
committer | Sergey Yershov <yershov@corp.mail.ru> | 2016-03-23 16:02:55 +0300 |
commit | 330aee183867f37c2954c4011f9f2a4e55f8e9a2 (patch) | |
tree | ffea7d81e4bf535198a821b920d3290d76175e7a /indexer/feature_data.hpp | |
parent | 880238bedc6f998a8653fd95be3fbe9a8833c98f (diff) |
[generator] Pass address tokens to the search index generation step.
Diffstat (limited to 'indexer/feature_data.hpp')
-rw-r--r-- | indexer/feature_data.hpp | 29 |
1 files changed, 19 insertions, 10 deletions
diff --git a/indexer/feature_data.hpp b/indexer/feature_data.hpp index 07acea5c37..c12b309ea0 100644 --- a/indexer/feature_data.hpp +++ b/indexer/feature_data.hpp @@ -201,10 +201,8 @@ class FeatureParams : public FeatureParamsBase uint8_t m_geomType; - /// We use it now only for search unit tests - string m_street; - feature::Metadata m_metadata; + feature::AddressData m_addrTags; public: typedef vector<uint32_t> TTypes; @@ -220,10 +218,18 @@ public: /// @name Used in storing full street address only. //@{ - void AddStreetAddress(string const & s); + void AddStreet(string s); + void AddPlace(string const & s); + void AddPostcode(string const & s); + void AddAddress(string const & s); + bool FormatFullAddress(m2::PointD const & pt, string & res) const; //@} + /// Used for testing purposes now. + string GetStreet() const; + feature::AddressData const & GetAddressData() const { return m_addrTags; } + /// Assign parameters except geometry type. /// Geometry is independent state and it's set by FeatureType's geometry functions. inline void SetParams(FeatureParams const & rhs) @@ -231,7 +237,7 @@ public: BaseT::operator=(rhs); m_Types = rhs.m_Types; - m_street = rhs.m_street; + m_addrTags = rhs.m_addrTags; m_metadata = rhs.m_metadata; } @@ -268,7 +274,7 @@ public: feature::Metadata const & GetMetadata() const { return m_metadata; } feature::Metadata & GetMetadata() { return m_metadata; } - template <class SinkT> void Write(SinkT & sink, bool needStoreMetadata = true) const + template <class SinkT> void Write(SinkT & sink, bool fullStoring) const { uint8_t const header = GetHeader(); @@ -277,13 +283,16 @@ public: for (size_t i = 0; i < m_Types.size(); ++i) WriteVarUint(sink, GetIndexForType(m_Types[i])); - if (needStoreMetadata) + if (fullStoring) + { m_metadata.Serialize(sink); + m_addrTags.Serialize(sink); + } BaseT::Write(sink, header); } - template <class SrcT> void Read(SrcT & src, bool needReadMetadata = true) + template <class SrcT> void Read(SrcT & src) { using namespace feature; @@ -294,8 +303,8 @@ public: for (size_t i = 0; i < count; ++i) m_Types.push_back(GetTypeForIndex(ReadVarUint<uint32_t>(src))); - if (needReadMetadata) - m_metadata.Deserialize(src); + m_metadata.Deserialize(src); + m_addrTags.Deserialize(src); BaseT::Read(src, header); } |