Fix syntax error position indicators in parameters queries
To fix #2193 prefix_length member variable has been added to ParsedURL that is set to the length of "/service/version/profile/" prefix when the prefix is accepted by the parser. Also BOOST_FUSION_ADAPT_STRUCT for osrm::server::api::ParsedURL has been moved from header to url_parser.cpp to speed up compilation of CUs that do not use the fusion adaption.
This commit is contained in:
@@ -3,8 +3,6 @@
|
||||
|
||||
#include "util/coordinate.hpp"
|
||||
|
||||
#include <boost/fusion/include/adapt_struct.hpp>
|
||||
|
||||
#include <string>
|
||||
#include <vector>
|
||||
|
||||
@@ -21,17 +19,11 @@ struct ParsedURL final
|
||||
unsigned version;
|
||||
std::string profile;
|
||||
std::string query;
|
||||
std::size_t prefix_length;
|
||||
};
|
||||
|
||||
} // api
|
||||
} // server
|
||||
} // osrm
|
||||
|
||||
BOOST_FUSION_ADAPT_STRUCT(osrm::server::api::ParsedURL,
|
||||
(std::string, service)
|
||||
(unsigned, version)
|
||||
(std::string, profile)
|
||||
(std::string, query)
|
||||
)
|
||||
|
||||
#endif
|
||||
|
||||
@@ -25,7 +25,7 @@ class BaseService
|
||||
BaseService(OSRM &routing_machine) : routing_machine(routing_machine) {}
|
||||
virtual ~BaseService() = default;
|
||||
|
||||
virtual engine::Status RunQuery(std::string &query, ResultT &result) = 0;
|
||||
virtual engine::Status RunQuery(std::size_t prefix_length, std::string &query, ResultT &result) = 0;
|
||||
|
||||
virtual unsigned GetVersion() = 0;
|
||||
|
||||
|
||||
@@ -22,7 +22,7 @@ class MatchService final : public BaseService
|
||||
public:
|
||||
MatchService(OSRM &routing_machine) : BaseService(routing_machine) {}
|
||||
|
||||
engine::Status RunQuery(std::string &query, ResultT &result) final override;
|
||||
engine::Status RunQuery(std::size_t prefix_length, std::string &query, ResultT &result) final override;
|
||||
|
||||
unsigned GetVersion() final override { return 1; }
|
||||
};
|
||||
|
||||
@@ -22,7 +22,7 @@ class NearestService final : public BaseService
|
||||
public:
|
||||
NearestService(OSRM &routing_machine) : BaseService(routing_machine) {}
|
||||
|
||||
engine::Status RunQuery(std::string &query, ResultT &result) final override;
|
||||
engine::Status RunQuery(std::size_t prefix_length, std::string &query, ResultT &result) final override;
|
||||
|
||||
unsigned GetVersion() final override { return 1; }
|
||||
};
|
||||
|
||||
@@ -22,7 +22,7 @@ class RouteService final : public BaseService
|
||||
public:
|
||||
RouteService(OSRM &routing_machine) : BaseService(routing_machine) {}
|
||||
|
||||
engine::Status RunQuery(std::string &query, ResultT &result) final override;
|
||||
engine::Status RunQuery(std::size_t prefix_length, std::string &query, ResultT &result) final override;
|
||||
|
||||
unsigned GetVersion() final override { return 1; }
|
||||
};
|
||||
|
||||
@@ -22,7 +22,7 @@ class TableService final : public BaseService
|
||||
public:
|
||||
TableService(OSRM &routing_machine) : BaseService(routing_machine) {}
|
||||
|
||||
engine::Status RunQuery(std::string &query, ResultT &result) final override;
|
||||
engine::Status RunQuery(std::size_t prefix_length, std::string &query, ResultT &result) final override;
|
||||
|
||||
unsigned GetVersion() final override { return 1; }
|
||||
};
|
||||
|
||||
@@ -22,7 +22,7 @@ class TileService final : public BaseService
|
||||
public:
|
||||
TileService(OSRM &routing_machine) : BaseService(routing_machine) {}
|
||||
|
||||
engine::Status RunQuery(std::string &query, ResultT &result) final override;
|
||||
engine::Status RunQuery(std::size_t prefix_length, std::string &query, ResultT &result) final override;
|
||||
|
||||
unsigned GetVersion() final override { return 1; }
|
||||
};
|
||||
|
||||
@@ -22,7 +22,7 @@ class TripService final : public BaseService
|
||||
public:
|
||||
TripService(OSRM &routing_machine) : BaseService(routing_machine) {}
|
||||
|
||||
engine::Status RunQuery(std::string &query, ResultT &result) final override;
|
||||
engine::Status RunQuery(std::size_t prefix_length, std::string &query, ResultT &result) final override;
|
||||
|
||||
unsigned GetVersion() final override { return 1; }
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user