Change serialisation of .geometries file.
This commit is contained in:
parent
3f5fc1e897
commit
99a87b4c83
@ -41,45 +41,26 @@ template <storage::Ownership Ownership>
|
||||
inline void read(storage::io::FileReader &reader,
|
||||
detail::SegmentDataContainerImpl<Ownership> &segment_data)
|
||||
{
|
||||
auto num_indices = reader.ReadElementCount32();
|
||||
segment_data.index.resize(num_indices);
|
||||
reader.ReadInto(segment_data.index.data(), num_indices);
|
||||
|
||||
auto num_entries = reader.ReadElementCount32();
|
||||
segment_data.nodes.resize(num_entries);
|
||||
segment_data.fwd_weights.resize(num_entries);
|
||||
segment_data.rev_weights.resize(num_entries);
|
||||
segment_data.fwd_durations.resize(num_entries);
|
||||
segment_data.rev_durations.resize(num_entries);
|
||||
segment_data.datasources.resize(num_entries);
|
||||
|
||||
reader.ReadInto(segment_data.nodes);
|
||||
reader.ReadInto(segment_data.fwd_weights);
|
||||
reader.ReadInto(segment_data.rev_weights);
|
||||
reader.ReadInto(segment_data.fwd_durations);
|
||||
reader.ReadInto(segment_data.rev_durations);
|
||||
reader.ReadInto(segment_data.datasources);
|
||||
reader.DeserializeVector(segment_data.index);
|
||||
reader.DeserializeVector(segment_data.nodes);
|
||||
reader.DeserializeVector(segment_data.fwd_weights);
|
||||
reader.DeserializeVector(segment_data.rev_weights);
|
||||
reader.DeserializeVector(segment_data.fwd_durations);
|
||||
reader.DeserializeVector(segment_data.rev_durations);
|
||||
reader.DeserializeVector(segment_data.datasources);
|
||||
}
|
||||
|
||||
template <storage::Ownership Ownership>
|
||||
inline void write(storage::io::FileWriter &writer,
|
||||
const detail::SegmentDataContainerImpl<Ownership> &segment_data)
|
||||
{
|
||||
writer.WriteElementCount32(segment_data.index.size());
|
||||
writer.WriteFrom(segment_data.index);
|
||||
|
||||
writer.WriteElementCount32(segment_data.nodes.size());
|
||||
BOOST_ASSERT(segment_data.fwd_weights.size() == segment_data.nodes.size());
|
||||
BOOST_ASSERT(segment_data.rev_weights.size() == segment_data.nodes.size());
|
||||
BOOST_ASSERT(segment_data.fwd_durations.size() == segment_data.nodes.size());
|
||||
BOOST_ASSERT(segment_data.rev_durations.size() == segment_data.nodes.size());
|
||||
BOOST_ASSERT(segment_data.datasources.size() == segment_data.nodes.size());
|
||||
writer.WriteFrom(segment_data.nodes);
|
||||
writer.WriteFrom(segment_data.fwd_weights);
|
||||
writer.WriteFrom(segment_data.rev_weights);
|
||||
writer.WriteFrom(segment_data.fwd_durations);
|
||||
writer.WriteFrom(segment_data.rev_durations);
|
||||
writer.WriteFrom(segment_data.datasources);
|
||||
writer.SerializeVector(segment_data.index);
|
||||
writer.SerializeVector(segment_data.nodes);
|
||||
writer.SerializeVector(segment_data.fwd_weights);
|
||||
writer.SerializeVector(segment_data.rev_weights);
|
||||
writer.SerializeVector(segment_data.fwd_durations);
|
||||
writer.SerializeVector(segment_data.rev_durations);
|
||||
writer.SerializeVector(segment_data.datasources);
|
||||
}
|
||||
|
||||
template <storage::Ownership Ownership>
|
||||
|
@ -88,7 +88,7 @@ template <typename DataT> class vector_view
|
||||
{
|
||||
if (m_size != size)
|
||||
{
|
||||
throw util::exception("Invalid resize on immutable shared memory vector.");
|
||||
throw util::exception("Invalid resize " + std::to_string(size) + " on immutable vector view of size " + std::to_string(m_size) + ".");
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -324,14 +324,12 @@ void Storage::PopulateLayout(DataLayout &layout)
|
||||
|
||||
// load geometries sizes
|
||||
{
|
||||
io::FileReader geometry_file(config.geometries_path, io::FileReader::HasNoFingerprint);
|
||||
io::FileReader reader(config.geometries_path, io::FileReader::HasNoFingerprint);
|
||||
|
||||
const auto number_of_geometries_indices = geometry_file.ReadElementCount32();
|
||||
const auto number_of_geometries_indices = reader.ReadVectorSize<unsigned>();
|
||||
layout.SetBlockSize<unsigned>(DataLayout::GEOMETRIES_INDEX, number_of_geometries_indices);
|
||||
|
||||
geometry_file.Skip<unsigned>(number_of_geometries_indices);
|
||||
|
||||
const auto number_of_compressed_geometries = geometry_file.ReadElementCount32();
|
||||
const auto number_of_compressed_geometries = reader.ReadVectorSize<NodeID>();
|
||||
layout.SetBlockSize<NodeID>(DataLayout::GEOMETRIES_NODE_LIST,
|
||||
number_of_compressed_geometries);
|
||||
layout.SetBlockSize<EdgeWeight>(DataLayout::GEOMETRIES_FWD_WEIGHT_LIST,
|
||||
|
Loading…
Reference in New Issue
Block a user