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/feature_processor.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/feature_processor.hpp')
-rw-r--r--indexer/feature_processor.hpp9
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();
}