diff options
author | vng <viktor.govako@gmail.com> | 2010-12-19 23:40:52 +0300 |
---|---|---|
committer | Alex Zolotarev <alex@maps.me> | 2015-09-23 01:08:42 +0300 |
commit | 327aa0e7cb1d20ee8bfd333899a8ec7b8cea9c41 (patch) | |
tree | 610e24a6ae45f456675550db56ffdf497bd2c88e /indexer/feature_processor.hpp | |
parent | c65e815b69d1eb1ac86636e70d8b66ebcf40052e (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/feature_processor.hpp')
-rw-r--r-- | indexer/feature_processor.hpp | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/indexer/feature_processor.hpp b/indexer/feature_processor.hpp index 4ef1b23494..1045f6593a 100644 --- a/indexer/feature_processor.hpp +++ b/indexer/feature_processor.hpp @@ -12,11 +12,11 @@ namespace feature { /// Read feature from feature source. template <class TSource, class TFeature> - void ReadFromSource(TSource & src, TFeature & f) + void ReadFromSource(TSource & src, TFeature & f, typename TFeature::read_source_t & buffer) { uint32_t const sz = ReadVarUint<uint32_t>(src); - vector<char> buffer(sz); - src.Read(&buffer[0], sz); + buffer.m_data.resize(sz); + src.Read(&buffer.m_data[0], sz); f.Deserialize(buffer); } @@ -28,6 +28,7 @@ namespace feature FileReader reader(fName); source_t src(reader); + typename TFeature::read_source_t buffer(fName); // skip header uint64_t currPos = feature::GetSkipHeaderSize(reader); @@ -38,7 +39,7 @@ namespace feature while (currPos < fSize) { TFeature f; - ReadFromSource(src, f); + ReadFromSource(src, f, buffer); toDo(f, currPos); currPos = src.Pos(); } |