| 72 | }; |
| 73 | |
| 74 | unique_ptr<HouseToStreetTable> LoadHouseTableImpl(MwmValue const & value, std::string const & tag) |
| 75 | { |
| 76 | unique_ptr<HouseToStreetTable> result; |
| 77 | |
| 78 | try |
| 79 | { |
| 80 | auto const format = version::MwmTraits(value.GetMwmVersion()).GetHouseToStreetTableFormat(); |
| 81 | CHECK_EQUAL(format, version::MwmTraits::HouseToStreetTableFormat::HouseToStreetTableWithHeader, ()); |
| 82 | |
| 83 | FilesContainerR::TReader reader = value.m_cont.GetReader(tag); |
| 84 | |
| 85 | HouseToStreetTable::Header header; |
| 86 | ReaderSource source(reader); |
| 87 | header.Read(source); |
| 88 | CHECK(header.m_version == HouseToStreetTable::Version::V2, ()); |
| 89 | |
| 90 | auto subreader = reader.GetPtr()->CreateSubReader(header.m_tableOffset, header.m_tableSize); |
| 91 | CHECK(subreader, ()); |
| 92 | result = make_unique<EliasFanoMap>(std::move(subreader)); |
| 93 | } |
| 94 | catch (Reader::OpenException const & ex) |
| 95 | { |
| 96 | LOG(LERROR, (ex.Msg())); |
| 97 | } |
| 98 | |
| 99 | if (!result) |
| 100 | result = make_unique<DummyTable>(); |
| 101 | return result; |
| 102 | } |
| 103 | } // namespace |
| 104 | |
| 105 | std::unique_ptr<HouseToStreetTable> LoadHouseToStreetTable(MwmValue const & value) |
no test coverage detected