diff options
author | VladiMihaylenko <vxmihaylenko@gmail.com> | 2017-08-09 17:32:36 +0300 |
---|---|---|
committer | Yuri Gorshenin <mipt.vi002@gmail.com> | 2017-08-11 12:10:24 +0300 |
commit | 95f744faff9bcd48138b575a40314efe43d8a0c8 (patch) | |
tree | c03901cf1fdd54ab90920cbef1b6b3ab07642e18 /platform | |
parent | 54143ac26e806d290632d4ac6408a5a14f71c1da (diff) |
Inject diff scheme into files.
Diffstat (limited to 'platform')
-rw-r--r-- | platform/country_defines.cpp | 2 | ||||
-rw-r--r-- | platform/country_defines.hpp | 3 | ||||
-rw-r--r-- | platform/country_file.cpp | 9 | ||||
-rw-r--r-- | platform/country_file.hpp | 4 | ||||
-rw-r--r-- | platform/local_country_file.cpp | 8 | ||||
-rw-r--r-- | platform/local_country_file.hpp | 13 |
6 files changed, 26 insertions, 13 deletions
diff --git a/platform/country_defines.cpp b/platform/country_defines.cpp index bbbf933a2a..4f1072a466 100644 --- a/platform/country_defines.cpp +++ b/platform/country_defines.cpp @@ -40,5 +40,7 @@ string DebugPrint(MapOptions options) return "CarRouting"; case MapOptions::MapWithCarRouting: return "MapWithCarRouting"; + case MapOptions::Diff: + return "Diff"; } } diff --git a/platform/country_defines.hpp b/platform/country_defines.hpp index c59d63759b..e9a123bc8a 100644 --- a/platform/country_defines.hpp +++ b/platform/country_defines.hpp @@ -8,7 +8,8 @@ enum class MapOptions : uint8_t Nothing = 0x0, Map = 0x1, CarRouting = 0x2, - MapWithCarRouting = 0x3 + MapWithCarRouting = 0x3, + Diff = 0x4 }; using TMwmCounter = uint32_t; diff --git a/platform/country_file.cpp b/platform/country_file.cpp index f013ba92b8..2910e68d2b 100644 --- a/platform/country_file.cpp +++ b/platform/country_file.cpp @@ -20,6 +20,8 @@ string GetNameWithExt(string const & countryFile, MapOptions file) return countryFile + DATA_FILE_EXTENSION; case MapOptions::CarRouting: return countryFile + DATA_FILE_EXTENSION + ROUTING_FILE_EXTENSION; + case MapOptions::Diff: + return countryFile + DIFF_FILE_EXTENSION; default: ASSERT(false, ("Can't get name for:", file)); return string(); @@ -51,11 +53,12 @@ TMwmSize CountryFile::GetRemoteSize(MapOptions filesMask) const return size; } - string GetFileName(string const & countryFile, MapOptions opt, int64_t version) { - return version::IsSingleMwm(version) ? GetNameWithExt(countryFile, MapOptions::Map) - : GetNameWithExt(countryFile, opt); + if (version::IsSingleMwm(version)) + opt = opt == MapOptions::Diff ? MapOptions::Diff : MapOptions::Map; + + return GetNameWithExt(countryFile, opt); } string DebugPrint(CountryFile const & file) diff --git a/platform/country_file.hpp b/platform/country_file.hpp index 06a3286155..c7f253ce5d 100644 --- a/platform/country_file.hpp +++ b/platform/country_file.hpp @@ -32,8 +32,8 @@ private: /// Base name (without any extensions) of the file. Same as id of country/region. string m_name; - TMwmSize m_mapSize; - TMwmSize m_routingSize; + TMwmSize m_mapSize = 0; + TMwmSize m_routingSize = 0; }; /// \returns This method returns file name with extension. For example Abkhazia.mwm or diff --git a/platform/local_country_file.cpp b/platform/local_country_file.cpp index a69c7439e0..40a63fe105 100644 --- a/platform/local_country_file.cpp +++ b/platform/local_country_file.cpp @@ -35,6 +35,12 @@ void LocalCountryFile::SyncWithDisk() m_routingSize = 0; Platform & platform = GetPlatform(); + if (platform.GetFileSizeByFullPath(GetPath(MapOptions::Diff), m_mapSize)) + { + m_files = SetOptions(m_files, MapOptions::Diff); + return; + } + if (platform.GetFileSizeByFullPath(GetPath(MapOptions::Map), m_mapSize)) m_files = SetOptions(m_files, MapOptions::Map); @@ -53,7 +59,7 @@ void LocalCountryFile::SyncWithDisk() void LocalCountryFile::DeleteFromDisk(MapOptions files) const { vector<MapOptions> const mapOptions = - version::IsSingleMwm(GetVersion()) ? vector<MapOptions>({MapOptions::Map}) + version::IsSingleMwm(GetVersion()) ? vector<MapOptions>({MapOptions::Map, MapOptions::Diff}) : vector<MapOptions>({MapOptions::Map, MapOptions::CarRouting}); for (MapOptions file : mapOptions) { diff --git a/platform/local_country_file.hpp b/platform/local_country_file.hpp index e506a72f0e..cebf6b55cd 100644 --- a/platform/local_country_file.hpp +++ b/platform/local_country_file.hpp @@ -55,20 +55,21 @@ public: // Returns a mask of all known country files. Return value may be // empty until SyncWithDisk() is called. - inline MapOptions GetFiles() const { return m_files; } + MapOptions GetFiles() const { return m_files; } // Checks whether files specified in filesMask are on disk. Return // value will be false until SyncWithDisk() is called. - inline bool OnDisk(MapOptions filesMask) const + bool OnDisk(MapOptions filesMask) const { return (static_cast<unsigned>(m_files) & static_cast<unsigned>(filesMask)) == static_cast<unsigned>(filesMask); } - inline string const & GetDirectory() const { return m_directory; } - inline string const & GetCountryName() const { return m_countryFile.GetName(); } - inline int64_t GetVersion() const { return m_version; } - inline CountryFile const & GetCountryFile() const { return m_countryFile; } + string const & GetDirectory() const { return m_directory; } + string const & GetCountryName() const { return m_countryFile.GetName(); } + int64_t GetVersion() const { return m_version; } + CountryFile const & GetCountryFile() const { return m_countryFile; } + CountryFile & GetCountryFile() { return m_countryFile; } bool operator<(LocalCountryFile const & rhs) const; bool operator==(LocalCountryFile const & rhs) const; |