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