Welcome to mirror list, hosted at ThFree Co, Russian Federation.

mwm_traits.hpp « platform - github.com/mapsme/omim.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 2c0a1c9c08af4057be45edbb2a2a002e4a1a3cac (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#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;

  bool HasOffsetsTable() const;

private:
  version::Format m_versionFormat;
};

string DebugPrint(MwmTraits::SearchIndexFormat format);
string DebugPrint(MwmTraits::HouseToStreetTableFormat format);
}  // namespace version