diff options
author | Vladimir Byko-Ianko <v.bykoianko@corp.mail.ru> | 2016-07-25 10:49:28 +0300 |
---|---|---|
committer | Vladimir Byko-Ianko <v.bykoianko@corp.mail.ru> | 2016-07-26 18:51:57 +0300 |
commit | 73fccde2d4bc0e2ae41843a1f7fb574d9ccfce65 (patch) | |
tree | 3717e981cbc1d32710d138ce2caa8d7b7083864b /indexer/feature_altitude.hpp | |
parent | 979f48bfaf7322320801db215b1d0e3d231f8699 (diff) |
Review fixes.
Diffstat (limited to 'indexer/feature_altitude.hpp')
-rw-r--r-- | indexer/feature_altitude.hpp | 69 |
1 files changed, 35 insertions, 34 deletions
diff --git a/indexer/feature_altitude.hpp b/indexer/feature_altitude.hpp index 3b225d04ee..f72966b967 100644 --- a/indexer/feature_altitude.hpp +++ b/indexer/feature_altitude.hpp @@ -1,5 +1,7 @@ #pragma once +#include "coding/reader.hpp" #include "coding/varint.hpp" +#include "coding/write_to_sink.hpp" #include "base/assert.hpp" @@ -11,7 +13,6 @@ namespace feature { using TAltitude = int16_t; using TAltitudes = vector<feature::TAltitude>; -using TAltitudeSectionOffset = uint32_t; TAltitude constexpr kInvalidAltitude = numeric_limits<TAltitude>::min(); @@ -27,58 +28,58 @@ struct AltitudeHeader template <class TSink> void Serialize(TSink & sink) const { - sink.Write(&version, sizeof(version)); - sink.Write(&minAltitude, sizeof(minAltitude)); - sink.Write(&featureTableOffset, sizeof(featureTableOffset)); - sink.Write(&altitudeInfoOffset, sizeof(altitudeInfoOffset)); - sink.Write(&endOffset, sizeof(endOffset)); + WriteToSink(sink, m_version); + WriteToSink(sink, m_minAltitude); + WriteToSink(sink, m_featureTableOffset); + WriteToSink(sink, m_altitudesOffset); + WriteToSink(sink, m_endOffset); } template <class TSource> void Deserialize(TSource & src) { - src.Read(&version, sizeof(version)); - src.Read(&minAltitude, sizeof(minAltitude)); - src.Read(&featureTableOffset, sizeof(featureTableOffset)); - src.Read(&altitudeInfoOffset, sizeof(altitudeInfoOffset)); - src.Read(&endOffset, sizeof(endOffset)); + m_version = ReadPrimitiveFromSource<TAltitudeSectionVersion>(src); + m_minAltitude = ReadPrimitiveFromSource<TAltitude>(src); + m_featureTableOffset = ReadPrimitiveFromSource<uint32_t>(src); + m_altitudesOffset = ReadPrimitiveFromSource<uint32_t>(src); + m_endOffset = ReadPrimitiveFromSource<uint32_t>(src); } // Methods below return sizes of parts of altitude section in bytes. - static size_t GetHeaderSize() { return sizeof(AltitudeHeader); } - - size_t GetAltitudeAvailabilitySize() const { return featureTableOffset - GetHeaderSize(); } - size_t GetFeatureTableSize() const { return altitudeInfoOffset - featureTableOffset; } - size_t GetAltitudeInfo() const { return endOffset - altitudeInfoOffset; } + size_t GetAltitudeAvailabilitySize() const { return m_featureTableOffset - sizeof(AltitudeHeader); } + size_t GetFeatureTableSize() const { return m_altitudesOffset - m_featureTableOffset; } + size_t GetAltitudeInfo() const { return m_endOffset - m_altitudesOffset; } void Reset() { - version = 1; - minAltitude = kInvalidAltitude; - featureTableOffset = 0; - altitudeInfoOffset = 0; - endOffset = 0; + m_version = 0; + m_minAltitude = kInvalidAltitude; + m_featureTableOffset = 0; + m_altitudesOffset = 0; + m_endOffset = 0; } - TAltitudeSectionVersion version; - TAltitude minAltitude; - TAltitudeSectionOffset featureTableOffset; - TAltitudeSectionOffset altitudeInfoOffset; - TAltitudeSectionOffset endOffset; + TAltitudeSectionVersion m_version; + TAltitude m_minAltitude; + uint32_t m_featureTableOffset; + uint32_t m_altitudesOffset; + uint32_t m_endOffset; }; -class Altitude +static_assert(sizeof(AltitudeHeader) == 16, "Wrong header size of altitude section."); + +class Altitudes { public: - Altitude() = default; - explicit Altitude(TAltitudes const & altitudes) : m_altitudes(altitudes) {} + Altitudes() = default; + explicit Altitudes(TAltitudes const & altitudes) : m_altitudes(altitudes) {} template <class TSink> void Serialize(TAltitude minAltitude, TSink & sink) const { CHECK(!m_altitudes.empty(), ()); - WriteVarInt(sink, static_cast<int32_t>(m_altitudes[0] - static_cast<int32_t>(minAltitude))); + WriteVarInt(sink, static_cast<int32_t>(m_altitudes[0]) - static_cast<int32_t>(minAltitude)); for (size_t i = 1; i < m_altitudes.size(); ++i) WriteVarInt(sink, static_cast<int32_t>(m_altitudes[i]) - static_cast<int32_t>(m_altitudes[i - 1])); } @@ -94,17 +95,17 @@ public: } m_altitudes.resize(pointCount); - TAltitude prevPntAltitude = minAltitude; + TAltitude prevAltitude = minAltitude; for (size_t i = 0; i < pointCount; ++i) { - m_altitudes[i] = static_cast<TAltitude>(ReadVarInt<int32_t>(src) + prevPntAltitude); + m_altitudes[i] = static_cast<TAltitude>(ReadVarInt<int32_t>(src) + prevAltitude); if (m_altitudes[i] < minAltitude) { ASSERT(false, ()); m_altitudes.clear(); return; } - prevPntAltitude = m_altitudes[i]; + prevAltitude = m_altitudes[i]; } } @@ -114,7 +115,7 @@ public: } private: - /// \note |m_altitudes| is a vector of feature point altitudes. There's two posibilities: + /// \note |m_altitudes| is a vector of feature point altitudes. There's two possibilities: /// * |m_altitudes| is empty. It means there is no altitude information for this feature. /// * size of |m_pointAlt| is equal to the number of this feature's points. /// In this case the i'th element of |m_pointAlt| corresponds to the altitude of the |