Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mapsme/omim.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLev Dragunov <l.dragunov@corp.mail.ru>2015-03-06 19:19:04 +0300
committerAlex Zolotarev <alex@maps.me>2015-09-23 02:38:25 +0300
commitcbc137f24089dac4f4540e23747bb7b0259c936b (patch)
tree6ba7f4be58d6aed030973755b77af39cbed0c7ba /indexer/features_offsets_table.cpp
parentfa062c45a4f4c76ca313e9da41efe18948cea326 (diff)
Extract index path generation from offsets table class
Diffstat (limited to 'indexer/features_offsets_table.cpp')
-rw-r--r--indexer/features_offsets_table.cpp28
1 files changed, 9 insertions, 19 deletions
diff --git a/indexer/features_offsets_table.cpp b/indexer/features_offsets_table.cpp
index 23015bfd7f..87be9bab18 100644
--- a/indexer/features_offsets_table.cpp
+++ b/indexer/features_offsets_table.cpp
@@ -45,9 +45,8 @@ namespace feature
}
// static
- unique_ptr<FeaturesOffsetsTable> FeaturesOffsetsTable::Load(string const & countryName)
+ unique_ptr<FeaturesOffsetsTable> FeaturesOffsetsTable::Load(string const & fileName)
{
- string const fileName = GetIndexFileName(countryName);
uint64_t size;
if (!GetPlatform().GetFileSizeByFullPath(fileName, size))
return unique_ptr<FeaturesOffsetsTable>();
@@ -56,34 +55,30 @@ namespace feature
// static
unique_ptr<FeaturesOffsetsTable> FeaturesOffsetsTable::CreateIfNotExistsAndLoad(
- string const & countryName)
+ string const & fileName, FilesContainerR const & mwmFileContainer)
{
- string const fileName = GetIndexFileName(countryName);
uint64_t size;
if (GetPlatform().GetFileSizeByFullPath(fileName,size))
- return Load(countryName);
+ return Load(fileName);
- string const mwmName = GetPlatform().WritablePathForFile(countryName + DATA_FILE_EXTENSION);
- FilesContainerR cont(mwmName);
- if (!cont.IsExist(HEADER_FILE_TAG))
+ if (!mwmFileContainer.IsExist(HEADER_FILE_TAG))
return unique_ptr<FeaturesOffsetsTable>();
DataHeader header;
- header.Load(cont.GetReader(HEADER_FILE_TAG));
+ header.Load(mwmFileContainer.GetReader(HEADER_FILE_TAG));
Builder builder;
- FeaturesVector(cont, header).ForEachOffset([&builder] (FeatureType const &, uint32_t offset)
+ FeaturesVector(mwmFileContainer, header).ForEachOffset([&builder] (FeatureType const &, uint32_t offset)
{
builder.PushOffset(offset);
});
unique_ptr<FeaturesOffsetsTable> table(Build(builder));
- table->Save(countryName);
+ table->Save(fileName);
return table;
}
- void FeaturesOffsetsTable::Save(string const & countryName)
+ void FeaturesOffsetsTable::Save(string const & fileName)
{
- string const fileName = GetIndexFileName(countryName);
string const fileNameTmp = fileName + EXTENSION_TMP;
succinct::mapper::freeze(m_table, fileNameTmp.c_str());
my::RenameFileX(fileNameTmp, fileName);
@@ -111,12 +106,7 @@ namespace feature
else
rightBound = middle;
}
+ ASSERT_EQUAL(offset, m_table.select(leftBound), ("Can't find offset", offset, "in the table"));
return leftBound;
}
-
- string FeaturesOffsetsTable::GetIndexFileName(string const & countryName)
- {
- return GetPlatform().WritablePathForCountryIndexes(countryName) + countryName + FEATURES_OFFSETS_TABLE_FILE_EXT;
- }
-
} // namespace feature