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:
authorvng <viktor.govako@gmail.com>2015-11-17 18:38:39 +0300
committerSergey Yershov <yershov@corp.mail.ru>2016-03-23 16:02:55 +0300
commit330aee183867f37c2954c4011f9f2a4e55f8e9a2 (patch)
treeffea7d81e4bf535198a821b920d3290d76175e7a /indexer/feature_data.hpp
parent880238bedc6f998a8653fd95be3fbe9a8833c98f (diff)
[generator] Pass address tokens to the search index generation step.
Diffstat (limited to 'indexer/feature_data.hpp')
-rw-r--r--indexer/feature_data.hpp29
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);
}