diff options
author | vng <viktor.govako@gmail.com> | 2015-07-17 15:51:04 +0300 |
---|---|---|
committer | Alex Zolotarev <alex@maps.me> | 2015-09-23 02:57:14 +0300 |
commit | 4df12718bfe698acf09dccdb383409f7b3468ef3 (patch) | |
tree | 4f1fd9cec808b643a7bd4855d1aa7c9ab0f93f74 /indexer/data_header.cpp | |
parent | 68403bb083aa9f66b90d9d3bdc8b14223508ab77 (diff) |
Simplified feature::DataHeader routine.
Diffstat (limited to 'indexer/data_header.cpp')
-rw-r--r-- | indexer/data_header.cpp | 30 |
1 files changed, 26 insertions, 4 deletions
diff --git a/indexer/data_header.cpp b/indexer/data_header.cpp index 4e89333bcd..c426c4c046 100644 --- a/indexer/data_header.cpp +++ b/indexer/data_header.cpp @@ -2,17 +2,28 @@ #include "indexer/point_to_int64.hpp" #include "indexer/scales.hpp" -#include "defines.hpp" +#include "platform/platform.hpp" -#include "coding/file_reader.hpp" -#include "coding/file_writer.hpp" #include "coding/file_container.hpp" +#include "coding/file_writer.hpp" #include "coding/write_to_sink.hpp" #include "coding/varint.hpp" +#include "defines.hpp" + namespace feature { + DataHeader::DataHeader(string const & fileName) + : DataHeader((FilesContainerR(GetPlatform().GetReader(fileName)))) + { + } + + DataHeader::DataHeader(FilesContainerR const & cont) + { + Load(cont); + } + serial::CodingParams DataHeader::GetCodingParams(int scaleIndex) const { return serial::CodingParams(m_codingParams.GetCoordBits() - @@ -93,7 +104,18 @@ namespace feature WriteVarInt(w, static_cast<int32_t>(m_type)); } - void DataHeader::Load(ModelReaderPtr const & r, version::Format format /* = version::lastFormat */) + void DataHeader::Load(FilesContainerR const & cont) + { + ModelReaderPtr headerReader = cont.GetReader(HEADER_FILE_TAG); + version::MwmVersion version; + + if (version::ReadVersion(cont, version)) + Load(headerReader, version.format); + else + LoadV1(headerReader); + } + + void DataHeader::Load(ModelReaderPtr const & r, version::Format format) { ReaderSource<ModelReaderPtr> src(r); m_codingParams.Load(src); |