Split CSV parsing into nicer interface
This commit is contained in:
committed by
Patrick Niklaus
parent
20e028c47b
commit
83820bf82c
@@ -0,0 +1,47 @@
|
||||
#include "updater/csv_source.hpp"
|
||||
|
||||
#include "updater/csv_file_parser.hpp"
|
||||
|
||||
#include <boost/fusion/adapted/std_pair.hpp>
|
||||
#include <boost/fusion/include/adapt_adt.hpp>
|
||||
|
||||
BOOST_FUSION_ADAPT_STRUCT(osrm::updater::Segment,
|
||||
(decltype(osrm::updater::Segment::from),
|
||||
from)(decltype(osrm::updater::Segment::to), to))
|
||||
BOOST_FUSION_ADAPT_STRUCT(osrm::updater::SpeedSource,
|
||||
(decltype(osrm::updater::SpeedSource::speed),
|
||||
speed)(decltype(osrm::updater::SpeedSource::weight), weight))
|
||||
BOOST_FUSION_ADAPT_STRUCT(osrm::updater::Turn,
|
||||
(decltype(osrm::updater::Turn::from),
|
||||
from)(decltype(osrm::updater::Turn::via),
|
||||
via)(decltype(osrm::updater::Turn::to), to))
|
||||
BOOST_FUSION_ADAPT_STRUCT(osrm::updater::PenaltySource,
|
||||
(decltype(osrm::updater::PenaltySource::duration),
|
||||
duration)(decltype(osrm::updater::PenaltySource::weight), weight))
|
||||
namespace
|
||||
{
|
||||
namespace qi = boost::spirit::qi;
|
||||
}
|
||||
|
||||
namespace osrm
|
||||
{
|
||||
namespace updater
|
||||
{
|
||||
namespace csv
|
||||
{
|
||||
SegmentLookupTable readSegmentValues(const std::vector<std::string> &paths)
|
||||
{
|
||||
return CSVFilesParser<Segment, SpeedSource>(
|
||||
1, qi::ulong_long >> ',' >> qi::ulong_long, qi::uint_ >> -(',' >> qi::double_))(paths);
|
||||
}
|
||||
|
||||
TurnLookupTable readTurnValues(const std::vector<std::string> &paths)
|
||||
{
|
||||
return CSVFilesParser<Turn, PenaltySource>(1,
|
||||
qi::ulong_long >> ',' >> qi::ulong_long >> ',' >>
|
||||
qi::ulong_long,
|
||||
qi::double_ >> -(',' >> qi::double_))(paths);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user