We don't need templates at all, this is not CRTP?
This commit is contained in:
parent
bde8ec1dbd
commit
c88eeb89c6
@ -18,12 +18,10 @@ namespace engine
|
||||
namespace api
|
||||
{
|
||||
|
||||
namespace detail
|
||||
{
|
||||
template <typename ChildT> class BaseAPI_
|
||||
class BaseAPI
|
||||
{
|
||||
public:
|
||||
BaseAPI_(const datafacade::BaseDataFacade &facade_, const BaseParameters ¶meters_)
|
||||
BaseAPI(const datafacade::BaseDataFacade &facade_, const BaseParameters ¶meters_)
|
||||
: facade(facade_), parameters(parameters_)
|
||||
{
|
||||
}
|
||||
@ -59,12 +57,9 @@ template <typename ChildT> class BaseAPI_
|
||||
const datafacade::BaseDataFacade &facade;
|
||||
const BaseParameters ¶meters;
|
||||
};
|
||||
}
|
||||
|
||||
// Only expose non-templated version
|
||||
using BaseAPI = detail::BaseAPI_<std::true_type>;
|
||||
}
|
||||
}
|
||||
}
|
||||
} // ns api
|
||||
} // ns engine
|
||||
} // ns osrm
|
||||
|
||||
#endif
|
||||
|
@ -24,15 +24,11 @@ namespace engine
|
||||
namespace api
|
||||
{
|
||||
|
||||
namespace detail
|
||||
class RouteAPI final : public BaseAPI
|
||||
{
|
||||
template <typename ChildT> class RouteAPI_ : public BaseAPI_<RouteAPI_<ChildT>>
|
||||
{
|
||||
using BaseT = BaseAPI_<RouteAPI_<ChildT>>;
|
||||
|
||||
public:
|
||||
RouteAPI_(const datafacade::BaseDataFacade &facade_, const RouteParameters ¶meters_)
|
||||
: BaseT(facade_, parameters_), parameters(parameters_)
|
||||
RouteAPI(const datafacade::BaseDataFacade &facade_, const RouteParameters ¶meters_)
|
||||
: BaseAPI(facade_, parameters_), parameters(parameters_)
|
||||
{
|
||||
}
|
||||
|
||||
@ -53,7 +49,7 @@ template <typename ChildT> class RouteAPI_ : public BaseAPI_<RouteAPI_<ChildT>>
|
||||
raw_route.alt_source_traversed_in_reverse,
|
||||
raw_route.alt_target_traversed_in_reverse);
|
||||
}
|
||||
response.values["waypoints"] = BaseT::MakeWaypoints(raw_route.segment_end_coordinates);
|
||||
response.values["waypoints"] = BaseAPI::MakeWaypoints(raw_route.segment_end_coordinates);
|
||||
response.values["routes"] = std::move(routes);
|
||||
response.values["code"] = "ok";
|
||||
}
|
||||
@ -90,15 +86,16 @@ template <typename ChildT> class RouteAPI_ : public BaseAPI_<RouteAPI_<ChildT>>
|
||||
const bool reversed_target = target_traversed_in_reverse[idx];
|
||||
|
||||
auto leg_geometry = guidance::assembleGeometry(
|
||||
BaseT::facade, path_data, phantoms.source_phantom, phantoms.target_phantom);
|
||||
auto leg = guidance::assembleLeg(BaseT::facade, path_data, leg_geometry, phantoms.source_phantom,
|
||||
phantoms.target_phantom, reversed_source, reversed_target);
|
||||
BaseAPI::facade, path_data, phantoms.source_phantom, phantoms.target_phantom);
|
||||
auto leg = guidance::assembleLeg(BaseAPI::facade, path_data, leg_geometry,
|
||||
phantoms.source_phantom, phantoms.target_phantom,
|
||||
reversed_source, reversed_target);
|
||||
|
||||
if (parameters.steps)
|
||||
{
|
||||
leg.steps = guidance::assembleSteps(BaseT::facade,
|
||||
path_data, leg_geometry, phantoms.source_phantom, phantoms.target_phantom,
|
||||
reversed_source, reversed_target);
|
||||
leg.steps = guidance::assembleSteps(
|
||||
BaseAPI::facade, path_data, leg_geometry, phantoms.source_phantom,
|
||||
phantoms.target_phantom, reversed_source, reversed_target);
|
||||
}
|
||||
|
||||
leg_geometries.push_back(std::move(leg_geometry));
|
||||
@ -123,13 +120,9 @@ template <typename ChildT> class RouteAPI_ : public BaseAPI_<RouteAPI_<ChildT>>
|
||||
|
||||
const RouteParameters ¶meters;
|
||||
};
|
||||
}
|
||||
|
||||
// Expose non-templated version
|
||||
using RouteAPI = detail::RouteAPI_<std::true_type>;
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
} // ns api
|
||||
} // ns engine
|
||||
} // ns osrm
|
||||
|
||||
#endif
|
||||
|
@ -24,15 +24,11 @@ namespace engine
|
||||
namespace api
|
||||
{
|
||||
|
||||
namespace detail
|
||||
class TableAPI final : public BaseAPI
|
||||
{
|
||||
template <typename ChildT> class TableAPI_ : public BaseAPI_<TableAPI_<ChildT>>
|
||||
{
|
||||
using BaseT = BaseAPI_<TableAPI_<ChildT>>;
|
||||
|
||||
public:
|
||||
TableAPI_(const datafacade::BaseDataFacade &facade_, const TableParameters ¶meters_)
|
||||
: BaseT(facade_, parameters_), parameters(parameters_)
|
||||
TableAPI(const datafacade::BaseDataFacade &facade_, const TableParameters ¶meters_)
|
||||
: BaseAPI(facade_, parameters_), parameters(parameters_)
|
||||
{
|
||||
}
|
||||
|
||||
@ -69,7 +65,7 @@ template <typename ChildT> class TableAPI_ : public BaseAPI_<TableAPI_<ChildT>>
|
||||
for (; phantom_iter != phantoms.end() && coordinate_iter != parameters.coordinates.end();
|
||||
++phantom_iter, ++coordinate_iter)
|
||||
{
|
||||
json_waypoints.values.push_back(BaseT::MakeWaypoint(*coordinate_iter, *phantom_iter));
|
||||
json_waypoints.values.push_back(BaseAPI::MakeWaypoint(*coordinate_iter, *phantom_iter));
|
||||
}
|
||||
return json_waypoints;
|
||||
}
|
||||
@ -83,7 +79,7 @@ template <typename ChildT> class TableAPI_ : public BaseAPI_<TableAPI_<ChildT>>
|
||||
{
|
||||
BOOST_ASSERT(idx < phantoms.size() && idx < parameters.coordinates.size());
|
||||
json_waypoints.values.push_back(
|
||||
BaseT::MakeWaypoint(parameters.coordinates[idx], phantoms[idx]));
|
||||
BaseAPI::MakeWaypoint(parameters.coordinates[idx], phantoms[idx]));
|
||||
}
|
||||
return json_waypoints;
|
||||
}
|
||||
@ -106,12 +102,9 @@ template <typename ChildT> class TableAPI_ : public BaseAPI_<TableAPI_<ChildT>>
|
||||
|
||||
const TableParameters ¶meters;
|
||||
};
|
||||
}
|
||||
|
||||
// Expose non-templated version
|
||||
using TableAPI = detail::TableAPI_<std::true_type>;
|
||||
}
|
||||
}
|
||||
}
|
||||
} // ns api
|
||||
} // ns engine
|
||||
} // ns osrm
|
||||
|
||||
#endif
|
||||
|
Loading…
Reference in New Issue
Block a user