diff options
author | Sergey Yershov <yershov@corp.mail.ru> | 2014-12-25 20:32:07 +0300 |
---|---|---|
committer | Alex Zolotarev <alex@maps.me> | 2015-09-23 02:35:26 +0300 |
commit | 8f6b34bdb4e0e3ffb4010d5bd44df96bb4467a22 (patch) | |
tree | 2a02f3ce859edf2397c83d1fd2f3e48efa0b9bc0 /indexer/feature_loader.cpp | |
parent | af6bd463306aad0bc7154d5550a298a104bad143 (diff) |
Moved work with metadata to separated files
Diffstat (limited to 'indexer/feature_loader.cpp')
-rw-r--r-- | indexer/feature_loader.cpp | 15 |
1 files changed, 4 insertions, 11 deletions
diff --git a/indexer/feature_loader.cpp b/indexer/feature_loader.cpp index b88c63f80a..55664f903a 100644 --- a/indexer/feature_loader.cpp +++ b/indexer/feature_loader.cpp @@ -252,12 +252,12 @@ uint32_t LoaderCurrent::ParseTriangles(int scale) return sz; } -void LoaderCurrent::ParseAdditionalInfo() +void LoaderCurrent::ParseMetadata() { try { typedef pair<uint32_t, uint32_t> IdxElementT; - DDVector<IdxElementT, FilesContainerR::ReaderT> idx(m_Info.GetAdditionalInfoIndexReader()); + DDVector<IdxElementT, FilesContainerR::ReaderT> idx(m_Info.GetMetadataIndexReader()); auto it = lower_bound(idx.begin(), idx.end() , make_pair(uint32_t(m_pF->m_id.m_offset), uint32_t(0)) @@ -266,16 +266,9 @@ void LoaderCurrent::ParseAdditionalInfo() if (it != idx.end() && m_pF->m_id.m_offset == it->first) { - uint8_t header[2] = {0}; - char buffer[numeric_limits<uint8_t>::max()] = {0}; - ReaderSource<FilesContainerR::ReaderT> reader(m_Info.GetAdditionalInfoReader()); + ReaderSource<FilesContainerR::ReaderT> reader(m_Info.GetMetadataReader()); reader.Skip(it->second); - do - { - reader.Read(header, sizeof(header)); - reader.Read(buffer, header[1]); - m_pF->m_additional_info[uint8_t(header[0] & 0x7F)].assign(buffer, header[1]); - } while (!(header[0] & 0x80)); + m_pF->GetMetadata().DeserializeFromMWM(reader); } } catch(Reader::OpenException & e) |