Simplify write/read code

This commit is contained in:
Patrick Niklaus 2017-03-09 22:57:47 +00:00 committed by Patrick Niklaus
parent fb552fd751
commit 260a84b94b
2 changed files with 12 additions and 10 deletions

View File

@ -28,11 +28,11 @@ template <> void read(const boost::filesystem::path &path, SegmentDataContainer
segment_data.fwd_durations.resize(num_entries);
segment_data.rev_durations.resize(num_entries);
reader.ReadInto(segment_data.nodes.data(), segment_data.nodes.size());
reader.ReadInto(segment_data.fwd_weights.data(), segment_data.fwd_weights.size());
reader.ReadInto(segment_data.rev_weights.data(), segment_data.rev_weights.size());
reader.ReadInto(segment_data.fwd_durations.data(), segment_data.fwd_durations.size());
reader.ReadInto(segment_data.rev_durations.data(), segment_data.rev_durations.size());
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);
}
template <>
@ -48,11 +48,11 @@ void write(const boost::filesystem::path &path, const SegmentDataContainer &segm
writer.WriteElementCount32(segment_data.nodes.size());
writer.WriteElementCount32(segment_data.nodes.size());
writer.WriteFrom(segment_data.nodes.data(), segment_data.nodes.size());
writer.WriteFrom(segment_data.fwd_weights.data(), segment_data.fwd_weights.size());
writer.WriteFrom(segment_data.rev_weights.data(), segment_data.rev_weights.size());
writer.WriteFrom(segment_data.fwd_durations.data(), segment_data.fwd_durations.size());
writer.WriteFrom(segment_data.rev_durations.data(), segment_data.rev_durations.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);
}
}
}

View File

@ -284,6 +284,8 @@ class FileWriter
}
}
template <typename T> void WriteFrom(const std::vector<T> &src) { WriteFrom(src.data(), src.size()); }
template <typename T> void WriteFrom(const T &src) { WriteFrom(&src, 1); }
template <typename T> void WriteOne(const T tmp) { WriteFrom(tmp); }