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>2010-12-19 23:40:52 +0300
committerAlex Zolotarev <alex@maps.me>2015-09-23 01:08:42 +0300
commit327aa0e7cb1d20ee8bfd333899a8ec7b8cea9c41 (patch)
tree610e24a6ae45f456675550db56ffdf497bd2c88e /indexer/features_vector.hpp
parentc65e815b69d1eb1ac86636e70d8b66ebcf40052e (diff)
[Refactoring]
Divide FeatureBuilder in: - FeatureBuilderGeom (store geometry as-as) - FeatureBuilderGeomRef (store geometry separately) Add FeatureGeomRef as feature with separate geometry.
Diffstat (limited to 'indexer/features_vector.hpp')
-rw-r--r--indexer/features_vector.hpp14
1 files changed, 7 insertions, 7 deletions
diff --git a/indexer/features_vector.hpp b/indexer/features_vector.hpp
index 81d62abdc8..0721366a03 100644
--- a/indexer/features_vector.hpp
+++ b/indexer/features_vector.hpp
@@ -14,16 +14,15 @@ class FeaturesVector
public:
typedef ReaderT ReaderType;
- explicit FeaturesVector(ReaderT const & reader) : m_RecordReader(reader, 256)
+ explicit FeaturesVector(ReaderT const & reader)
+ : m_RecordReader(reader, 256), m_source(reader.GetName())
{
}
void Get(uint64_t pos, FeatureType & feature) const
{
- vector<char> record;
- uint32_t offset;
- m_RecordReader.ReadRecord(pos, record, offset);
- feature.Deserialize(record, offset);
+ m_RecordReader.ReadRecord(pos, m_source.m_data, m_source.m_offset);
+ feature.Deserialize(m_source);
}
template <class TDo> void ForEachOffset(TDo const & toDo) const
@@ -48,10 +47,11 @@ public:
private:
FeatureType const & DeserializeFeature(char const * data, uint32_t size, FeatureType * pFeature) const
{
- vector<char> data1(data, data + size);
- pFeature->Deserialize(data1);
+ m_source.assign(data, size);
+ pFeature->Deserialize(m_source);
return *pFeature;
}
VarRecordReader<ReaderT, &VarRecordSizeReaderVarint> m_RecordReader;
+ mutable FeatureType::read_source_t m_source;
};