refactor loading code of .datasource_indexes and .datasource_names files and move to io.hpp

This commit is contained in:
Huyen Chau Nguyen
2016-10-19 18:52:57 -07:00
parent 7b97e1035f
commit 69a60686dc
3 changed files with 89 additions and 41 deletions
@@ -292,14 +292,12 @@ class InternalDataFacade final : public BaseDataFacade
}
BOOST_ASSERT(datasources_stream);
std::uint64_t number_of_datasources = 0;
datasources_stream.read(reinterpret_cast<char *>(&number_of_datasources),
sizeof(number_of_datasources));
auto number_of_datasources = storage::io::readDatasourceIndexesSize(datasources_stream);
if (number_of_datasources > 0)
{
m_datasource_list.resize(number_of_datasources);
datasources_stream.read(reinterpret_cast<char *>(&(m_datasource_list[0])),
number_of_datasources * sizeof(uint8_t));
storage::io::readDatasourceIndexes(
datasources_stream, &m_datasource_list.front(), number_of_datasources);
}
boost::filesystem::ifstream datasourcenames_stream(datasource_names_file, std::ios::binary);
@@ -309,10 +307,16 @@ class InternalDataFacade final : public BaseDataFacade
" for reading!");
}
BOOST_ASSERT(datasourcenames_stream);
std::string name;
while (std::getline(datasourcenames_stream, name))
auto datasource_names_data = storage::io::readDatasourceNamesData(datasourcenames_stream);
m_datasource_names.resize(datasource_names_data.lengths.size());
for (std::uint32_t i = 0; i < datasource_names_data.lengths.size(); ++i)
{
m_datasource_names.push_back(std::move(name));
auto name_begin =
datasource_names_data.names.begin() + datasource_names_data.offsets[i];
auto name_end = datasource_names_data.names.begin() + datasource_names_data.offsets[i] +
datasource_names_data.lengths[i];
m_datasource_names[i] = std::move(std::string(name_begin, name_end));
}
}