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:
authorVladimir Byko-Ianko <v.bykoianko@corp.mail.ru>2016-07-19 14:49:38 +0300
committerVladimir Byko-Ianko <v.bykoianko@corp.mail.ru>2016-07-23 10:25:11 +0300
commit3fa7071a1b57145da7559144f2316ad3be555d39 (patch)
treee82db81c207ae5b5bfc93037d735279a301ca5b3 /indexer/altitude_loader.hpp
parentec73bce900be6b5379b49200781d2b1f7c4e4411 (diff)
Implementation index for altitude data with the help of succinct strutures.
Diffstat (limited to 'indexer/altitude_loader.hpp')
-rw-r--r--indexer/altitude_loader.hpp26
1 files changed, 17 insertions, 9 deletions
diff --git a/indexer/altitude_loader.hpp b/indexer/altitude_loader.hpp
index d792b28467..d7a27785de 100644
--- a/indexer/altitude_loader.hpp
+++ b/indexer/altitude_loader.hpp
@@ -2,24 +2,32 @@
#include "indexer/feature_altitude.hpp"
#include "indexer/index.hpp"
-#include "coding/dd_vector.hpp"
+#include "3party/succinct/rs_bit_vector.hpp"
+
+#include "std/unique_ptr.hpp"
+#include "std/vector.hpp"
namespace feature
{
+using TAltitudeSectionVersion = uint16_t;
+using TAltitudeSectionOffset = uint32_t;
+
class AltitudeLoader
{
public:
AltitudeLoader(MwmValue const * mwmValue);
- Altitudes GetAltitudes(uint32_t featureId) const;
+
+ TAltitudes GetAltitude(uint32_t featureId, size_t pointCount) const;
private:
- struct TAltitudeIndexEntry
- {
- uint32_t featureId;
- feature::TAltitude beginAlt;
- feature::TAltitude endAlt;
- };
+ void DeserializeHeader(ReaderSource<FilesContainerR::TReader> & rs);
- unique_ptr<DDVector<TAltitudeIndexEntry, FilesContainerR::TReader>> m_idx;
+ vector<char> m_altitudeAvailabilitBuf;
+ vector<char> m_featureTableBuf;
+ unique_ptr<succinct::rs_bit_vector> m_altitudeAvailability;
+ unique_ptr<succinct::elias_fano> m_featureTable;
+ FilesContainerR::TReader reader;
+ TAltitudeSectionOffset m_altitudeInfoOffset;
+ TAltitude m_minAltitude;
};
} // namespace feature