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 api
|
||||||
{
|
{
|
||||||
|
|
||||||
namespace detail
|
class BaseAPI
|
||||||
{
|
|
||||||
template <typename ChildT> class BaseAPI_
|
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
BaseAPI_(const datafacade::BaseDataFacade &facade_, const BaseParameters ¶meters_)
|
BaseAPI(const datafacade::BaseDataFacade &facade_, const BaseParameters ¶meters_)
|
||||||
: facade(facade_), parameters(parameters_)
|
: facade(facade_), parameters(parameters_)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
@ -59,12 +57,9 @@ template <typename ChildT> class BaseAPI_
|
|||||||
const datafacade::BaseDataFacade &facade;
|
const datafacade::BaseDataFacade &facade;
|
||||||
const BaseParameters ¶meters;
|
const BaseParameters ¶meters;
|
||||||
};
|
};
|
||||||
}
|
|
||||||
|
|
||||||
// Only expose non-templated version
|
} // ns api
|
||||||
using BaseAPI = detail::BaseAPI_<std::true_type>;
|
} // ns engine
|
||||||
}
|
} // ns osrm
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -24,15 +24,11 @@ namespace engine
|
|||||||
namespace api
|
namespace api
|
||||||
{
|
{
|
||||||
|
|
||||||
namespace detail
|
class RouteAPI final : public BaseAPI
|
||||||
{
|
{
|
||||||
template <typename ChildT> class RouteAPI_ : public BaseAPI_<RouteAPI_<ChildT>>
|
|
||||||
{
|
|
||||||
using BaseT = BaseAPI_<RouteAPI_<ChildT>>;
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
RouteAPI_(const datafacade::BaseDataFacade &facade_, const RouteParameters ¶meters_)
|
RouteAPI(const datafacade::BaseDataFacade &facade_, const RouteParameters ¶meters_)
|
||||||
: BaseT(facade_, parameters_), parameters(parameters_)
|
: 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_source_traversed_in_reverse,
|
||||||
raw_route.alt_target_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["routes"] = std::move(routes);
|
||||||
response.values["code"] = "ok";
|
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];
|
const bool reversed_target = target_traversed_in_reverse[idx];
|
||||||
|
|
||||||
auto leg_geometry = guidance::assembleGeometry(
|
auto leg_geometry = guidance::assembleGeometry(
|
||||||
BaseT::facade, path_data, phantoms.source_phantom, phantoms.target_phantom);
|
BaseAPI::facade, path_data, phantoms.source_phantom, phantoms.target_phantom);
|
||||||
auto leg = guidance::assembleLeg(BaseT::facade, path_data, leg_geometry, phantoms.source_phantom,
|
auto leg = guidance::assembleLeg(BaseAPI::facade, path_data, leg_geometry,
|
||||||
phantoms.target_phantom, reversed_source, reversed_target);
|
phantoms.source_phantom, phantoms.target_phantom,
|
||||||
|
reversed_source, reversed_target);
|
||||||
|
|
||||||
if (parameters.steps)
|
if (parameters.steps)
|
||||||
{
|
{
|
||||||
leg.steps = guidance::assembleSteps(BaseT::facade,
|
leg.steps = guidance::assembleSteps(
|
||||||
path_data, leg_geometry, phantoms.source_phantom, phantoms.target_phantom,
|
BaseAPI::facade, path_data, leg_geometry, phantoms.source_phantom,
|
||||||
reversed_source, reversed_target);
|
phantoms.target_phantom, reversed_source, reversed_target);
|
||||||
}
|
}
|
||||||
|
|
||||||
leg_geometries.push_back(std::move(leg_geometry));
|
leg_geometries.push_back(std::move(leg_geometry));
|
||||||
@ -123,13 +120,9 @@ template <typename ChildT> class RouteAPI_ : public BaseAPI_<RouteAPI_<ChildT>>
|
|||||||
|
|
||||||
const RouteParameters ¶meters;
|
const RouteParameters ¶meters;
|
||||||
};
|
};
|
||||||
}
|
|
||||||
|
|
||||||
// Expose non-templated version
|
} // ns api
|
||||||
using RouteAPI = detail::RouteAPI_<std::true_type>;
|
} // ns engine
|
||||||
|
} // ns osrm
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -24,15 +24,11 @@ namespace engine
|
|||||||
namespace api
|
namespace api
|
||||||
{
|
{
|
||||||
|
|
||||||
namespace detail
|
class TableAPI final : public BaseAPI
|
||||||
{
|
{
|
||||||
template <typename ChildT> class TableAPI_ : public BaseAPI_<TableAPI_<ChildT>>
|
|
||||||
{
|
|
||||||
using BaseT = BaseAPI_<TableAPI_<ChildT>>;
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
TableAPI_(const datafacade::BaseDataFacade &facade_, const TableParameters ¶meters_)
|
TableAPI(const datafacade::BaseDataFacade &facade_, const TableParameters ¶meters_)
|
||||||
: BaseT(facade_, parameters_), parameters(parameters_)
|
: 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();
|
for (; phantom_iter != phantoms.end() && coordinate_iter != parameters.coordinates.end();
|
||||||
++phantom_iter, ++coordinate_iter)
|
++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;
|
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());
|
BOOST_ASSERT(idx < phantoms.size() && idx < parameters.coordinates.size());
|
||||||
json_waypoints.values.push_back(
|
json_waypoints.values.push_back(
|
||||||
BaseT::MakeWaypoint(parameters.coordinates[idx], phantoms[idx]));
|
BaseAPI::MakeWaypoint(parameters.coordinates[idx], phantoms[idx]));
|
||||||
}
|
}
|
||||||
return json_waypoints;
|
return json_waypoints;
|
||||||
}
|
}
|
||||||
@ -106,12 +102,9 @@ template <typename ChildT> class TableAPI_ : public BaseAPI_<TableAPI_<ChildT>>
|
|||||||
|
|
||||||
const TableParameters ¶meters;
|
const TableParameters ¶meters;
|
||||||
};
|
};
|
||||||
}
|
|
||||||
|
|
||||||
// Expose non-templated version
|
} // ns api
|
||||||
using TableAPI = detail::TableAPI_<std::true_type>;
|
} // ns engine
|
||||||
}
|
} // ns osrm
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
Loading…
Reference in New Issue
Block a user