From 833ded9fc5e0678cff9fdaaef99f56206ce38e1b Mon Sep 17 00:00:00 2001 From: vng Date: Sat, 15 Jan 2011 13:32:16 +0200 Subject: Add buffer_vector and use it in FeatureType for geometry storing. --- indexer/feature_impl.hpp | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) (limited to 'indexer/feature_impl.hpp') diff --git a/indexer/feature_impl.hpp b/indexer/feature_impl.hpp index bcac9155a1..47219bab17 100644 --- a/indexer/feature_impl.hpp +++ b/indexer/feature_impl.hpp @@ -51,13 +51,13 @@ namespace feature sink.Write(&buffer[0], count); } - class points_emitter + template class points_emitter { - vector & m_points; + TCont & m_points; int64_t m_id; public: - points_emitter(vector & points, uint32_t count) + points_emitter(TCont & points, uint32_t count) : m_points(points), m_id(0) { m_points.reserve(count); @@ -68,21 +68,21 @@ namespace feature } }; - inline void const * ReadPointsSimple( void const * p, size_t count, - vector & points) + template + void const * ReadPointsSimple(void const * p, size_t count, TCont & points) { - return ReadVarInt64Array(p, count, points_emitter(points, count)); + return ReadVarInt64Array(p, count, points_emitter(points, count)); } - template - void ReadPoints(vector & points, TSource & src) + template + void ReadPoints(TCont & points, TSource & src) { uint32_t const count = ReadVarUint(src); vector buffer(count); char * p = &buffer[0]; src.Read(p, count); - ReadVarInt64Array(p, p + count, points_emitter(points, count / 2)); + ReadVarInt64Array(p, p + count, points_emitter(points, count / 2)); } } @@ -108,8 +108,8 @@ namespace feature detail::WriteCells(cells, sink); } - inline void const * LoadPointsSimple( void const * p, size_t count, - vector & points) + template + void const * LoadPointsSimple(void const * p, size_t count, TCont & points) { ASSERT_GREATER ( count, 1, () ); void const * ret = detail::ReadPointsSimple(p, count, points); @@ -117,8 +117,8 @@ namespace feature return ret; } - template - void LoadPoints(vector & points, TSource & src) + template + void LoadPoints(TCont & points, TSource & src) { detail::ReadPoints(points, src); @@ -138,8 +138,8 @@ namespace feature detail::WriteCells(cells, sink); } - template - void LoadTriangles(vector & points, TSource & src) + template + void LoadTriangles(TCont & points, TSource & src) { detail::ReadPoints(points, src); -- cgit v1.2.3