blob: 9051f341bf4ea562584e5e0b2a607edba49ecbe2 (
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
|
#pragma once
#include "platform/country_defines.hpp"
#include "std/string.hpp"
namespace platform
{
/// This class represents a country file name and sizes of
/// corresponding map files on a server, which should correspond to an
/// entry in countries.txt file. Also, this class can be used to
/// represent a hand-made-country name. Instances of this class don't
/// represent paths to disk files.
class CountryFile
{
public:
CountryFile();
explicit CountryFile(string const & name);
/// \returns file name without extensions.
string const & GetName() const;
/// \note Remote size is size of mwm in bytes. This mwm contains routing and map sections.
void SetRemoteSizes(MwmSize mapSize, MwmSize routingSize);
MwmSize GetRemoteSize(MapOptions file) const;
void SetSha1(string const & base64Sha1) { m_sha1 = base64Sha1; }
string const & GetSha1() const { return m_sha1; }
inline bool operator<(const CountryFile & rhs) const { return m_name < rhs.m_name; }
inline bool operator==(const CountryFile & rhs) const { return m_name == rhs.m_name; }
inline bool operator!=(const CountryFile & rhs) const { return !(*this == rhs); }
private:
friend string DebugPrint(CountryFile const & file);
/// Base name (without any extensions) of the file. Same as id of country/region.
string m_name;
MwmSize m_mapSize = 0;
MwmSize m_routingSize = 0;
/// \note SHA1 is encoded to base64.
string m_sha1;
};
/// \returns This method returns file name with extension. For example Abkhazia.mwm or
/// Abkhazia.mwm.routing.
/// \param countryFile is a file name without extension. For example Abkhazia.
/// \param file is type of map data.
/// \param version is version of mwm. For example 160731.
string GetFileName(string const & countryFile, MapOptions file, int64_t version);
string DebugPrint(CountryFile const & file);
} // namespace platform
|