diff options
author | Maxim Pimenov <m@maps.me> | 2016-01-27 15:38:02 +0300 |
---|---|---|
committer | Sergey Yershov <yershov@corp.mail.ru> | 2016-03-23 16:16:43 +0300 |
commit | a038f7cc6b468603d4aa329af830fe45c896fe63 (patch) | |
tree | b54ded608148db6bb685c732855cc0e97d36fb52 /platform/mwm_traits.hpp | |
parent | 669636ec86cfbcab4e0a49ebe5716cfad2ed17ae (diff) |
Moved mwm_traits from search to platform.
Diffstat (limited to 'platform/mwm_traits.hpp')
-rw-r--r-- | platform/mwm_traits.hpp | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/platform/mwm_traits.hpp b/platform/mwm_traits.hpp new file mode 100644 index 0000000000..8f559018b8 --- /dev/null +++ b/platform/mwm_traits.hpp @@ -0,0 +1,53 @@ +#pragma once + +#include "platform/mwm_version.hpp" + +#include "std/string.hpp" + +namespace version +{ +// This is a wrapper around mwm's version. Allows users to get +// information about versions of some data structures in mwm. +class MwmTraits +{ +public: + enum class SearchIndexFormat + { + // A list of features with their ranks and centers + // is stored behind every node of the search trie. + // This format corresponds to ValueList<FeatureWithRankAndCenter>. + FeaturesWithRankAndCenter, + + // A compressed bit vector of feature indices is + // stored behind every node of the search trie. + // This format corresponds to ValueList<FeatureIndexValue>. + CompressedBitVector, + }; + + enum class HouseToStreetTableFormat + { + // An array of elements where i-th element is an index of a street + // in a vector returned by ReverseGeocoder::GetNearbyStreets() for + // the i-th feature. Each element normally fits into 3 bits, but + // there can be exceptions, and these exceptions are stored in a + // separate table. See ReverseGeocoder and FixedBitsDDVector for + // details. + Fixed3BitsDDVector, + + // The format of relation is unknown. Most likely, an error has occured. + Unknown + }; + + MwmTraits(version::Format versionFormat); + + SearchIndexFormat GetSearchIndexFormat() const; + + HouseToStreetTableFormat GetHouseToStreetTableFormat() const; + +private: + version::Format m_versionFormat; +}; + +string DebugPrint(MwmTraits::SearchIndexFormat format); +string DebugPrint(MwmTraits::HouseToStreetTableFormat format); +} // namespace version |