osrm-backend/include/partition/io.hpp

64 lines
1.9 KiB
C++
Raw Normal View History

2017-03-01 17:55:18 -05:00
#ifndef OSRM_PARTITION_IO_HPP
#define OSRM_PARTITION_IO_HPP
2017-03-06 09:50:04 -05:00
#include "partition/cell_storage.hpp"
#include "partition/multi_level_partition.hpp"
2017-03-01 17:55:18 -05:00
#include "storage/io.hpp"
namespace osrm
{
namespace partition
{
namespace io
{
2017-03-06 09:50:04 -05:00
template <> inline void read(const boost::filesystem::path &path, MultiLevelPartition &mlp)
{
const auto fingerprint = storage::io::FileReader::VerifyFingerprint;
storage::io::FileReader reader{path, fingerprint};
reader.ReadInto<MultiLevelPartition::LevelData>(mlp.level_data);
reader.DeserializeVector(mlp.partition);
reader.DeserializeVector(mlp.cell_to_children);
}
template <> inline void write(const boost::filesystem::path &path, const MultiLevelPartition &mlp)
2017-03-01 17:55:18 -05:00
{
const auto fingerprint = storage::io::FileWriter::GenerateFingerprint;
storage::io::FileWriter writer{path, fingerprint};
writer.WriteOne(mlp.level_data);
writer.SerializeVector(mlp.partition);
writer.SerializeVector(mlp.cell_to_children);
}
2017-03-04 13:36:29 -05:00
template <> inline void read(const boost::filesystem::path &path, CellStorage &storage)
{
const auto fingerprint = storage::io::FileReader::VerifyFingerprint;
storage::io::FileReader reader{path, fingerprint};
reader.DeserializeVector(storage.weights);
reader.DeserializeVector(storage.source_boundary);
reader.DeserializeVector(storage.destination_boundary);
reader.DeserializeVector(storage.cells);
reader.DeserializeVector(storage.level_to_cell_offset);
}
2017-03-06 09:50:04 -05:00
template <> inline void write(const boost::filesystem::path &path, const CellStorage &storage)
2017-03-04 13:36:29 -05:00
{
const auto fingerprint = storage::io::FileWriter::GenerateFingerprint;
storage::io::FileWriter writer{path, fingerprint};
writer.SerializeVector(storage.weights);
writer.SerializeVector(storage.source_boundary);
writer.SerializeVector(storage.destination_boundary);
writer.SerializeVector(storage.cells);
writer.SerializeVector(storage.level_to_cell_offset);
}
2017-03-01 17:55:18 -05:00
}
}
}
#endif