Undo libosrm API break by adding old interface as method overload (#5861)
Removes the breaking libosrm API change by adding the old interface to the new. This does not introduce any new breaks. The downside of this is that it allows for multiple ways to return JSON responses.
This commit is contained in:
@@ -306,7 +306,10 @@ inline void asyncForTiles(const Nan::FunctionCallbackInfo<v8::Value> &info,
|
||||
// clang-format on
|
||||
NAN_METHOD(Engine::route) //
|
||||
{
|
||||
async(info, &argumentsToRouteParameter, &osrm::OSRM::Route, true);
|
||||
osrm::Status (osrm::OSRM::*route_fn)(const osrm::RouteParameters ¶ms,
|
||||
osrm::engine::api::ResultT &result) const =
|
||||
&osrm::OSRM::Route;
|
||||
async(info, &argumentsToRouteParameter, route_fn, true);
|
||||
}
|
||||
|
||||
// clang-format off
|
||||
@@ -346,7 +349,10 @@ NAN_METHOD(Engine::route) //
|
||||
// clang-format on
|
||||
NAN_METHOD(Engine::nearest) //
|
||||
{
|
||||
async(info, &argumentsToNearestParameter, &osrm::OSRM::Nearest, false);
|
||||
osrm::Status (osrm::OSRM::*nearest_fn)(const osrm::NearestParameters ¶ms,
|
||||
osrm::engine::api::ResultT &result) const =
|
||||
&osrm::OSRM::Nearest;
|
||||
async(info, &argumentsToNearestParameter, nearest_fn, false);
|
||||
}
|
||||
|
||||
// clang-format off
|
||||
@@ -398,7 +404,10 @@ NAN_METHOD(Engine::nearest) //
|
||||
// clang-format on
|
||||
NAN_METHOD(Engine::table) //
|
||||
{
|
||||
async(info, &argumentsToTableParameter, &osrm::OSRM::Table, true);
|
||||
osrm::Status (osrm::OSRM::*table_fn)(const osrm::TableParameters ¶ms,
|
||||
osrm::engine::api::ResultT &result) const =
|
||||
&osrm::OSRM::Table;
|
||||
async(info, &argumentsToTableParameter, table_fn, true);
|
||||
}
|
||||
|
||||
// clang-format off
|
||||
@@ -429,7 +438,10 @@ NAN_METHOD(Engine::table) //
|
||||
// clang-format on
|
||||
NAN_METHOD(Engine::tile)
|
||||
{
|
||||
asyncForTiles(info, &argumentsToTileParameters, &osrm::OSRM::Tile, {/*unused*/});
|
||||
osrm::Status (osrm::OSRM::*tile_fn)(const osrm::TileParameters ¶ms,
|
||||
osrm::engine::api::ResultT &result) const =
|
||||
&osrm::OSRM::Tile;
|
||||
asyncForTiles(info, &argumentsToTileParameters, tile_fn, {/*unused*/});
|
||||
}
|
||||
|
||||
// clang-format off
|
||||
@@ -483,7 +495,10 @@ NAN_METHOD(Engine::tile)
|
||||
// clang-format on
|
||||
NAN_METHOD(Engine::match) //
|
||||
{
|
||||
async(info, &argumentsToMatchParameter, &osrm::OSRM::Match, true);
|
||||
osrm::Status (osrm::OSRM::*match_fn)(const osrm::MatchParameters ¶ms,
|
||||
osrm::engine::api::ResultT &result) const =
|
||||
&osrm::OSRM::Match;
|
||||
async(info, &argumentsToMatchParameter, match_fn, true);
|
||||
}
|
||||
|
||||
// clang-format off
|
||||
@@ -553,7 +568,10 @@ NAN_METHOD(Engine::match) //
|
||||
// clang-format on
|
||||
NAN_METHOD(Engine::trip) //
|
||||
{
|
||||
async(info, &argumentsToTripParameter, &osrm::OSRM::Trip, true);
|
||||
osrm::Status (osrm::OSRM::*trip_fn)(const osrm::TripParameters ¶ms,
|
||||
osrm::engine::api::ResultT &result) const =
|
||||
&osrm::OSRM::Trip;
|
||||
async(info, &argumentsToTripParameter, trip_fn, true);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
+54
-11
@@ -56,38 +56,81 @@ OSRM &OSRM::operator=(OSRM &&) noexcept = default;
|
||||
|
||||
// Forward to implementation
|
||||
|
||||
engine::Status OSRM::Route(const engine::api::RouteParameters ¶ms,
|
||||
osrm::engine::api::ResultT &result) const
|
||||
Status OSRM::Route(const engine::api::RouteParameters ¶ms, json::Object &json_result) const
|
||||
{
|
||||
osrm::engine::api::ResultT result = json::Object();
|
||||
auto status = engine_->Route(params, result);
|
||||
json_result = std::move(result.get<json::Object>());
|
||||
return status;
|
||||
}
|
||||
|
||||
Status OSRM::Route(const RouteParameters ¶ms, engine::api::ResultT &result) const
|
||||
{
|
||||
return engine_->Route(params, result);
|
||||
}
|
||||
|
||||
engine::Status OSRM::Table(const engine::api::TableParameters ¶ms,
|
||||
osrm::engine::api::ResultT &result) const
|
||||
Status OSRM::Table(const engine::api::TableParameters ¶ms, json::Object &json_result) const
|
||||
{
|
||||
osrm::engine::api::ResultT result = json::Object();
|
||||
auto status = engine_->Table(params, result);
|
||||
json_result = std::move(result.get<json::Object>());
|
||||
return status;
|
||||
}
|
||||
|
||||
Status OSRM::Table(const TableParameters ¶ms, engine::api::ResultT &result) const
|
||||
{
|
||||
return engine_->Table(params, result);
|
||||
}
|
||||
|
||||
engine::Status OSRM::Nearest(const engine::api::NearestParameters ¶ms,
|
||||
osrm::engine::api::ResultT &result) const
|
||||
Status OSRM::Nearest(const engine::api::NearestParameters ¶ms, json::Object &json_result) const
|
||||
{
|
||||
osrm::engine::api::ResultT result = json::Object();
|
||||
auto status = engine_->Nearest(params, result);
|
||||
json_result = std::move(result.get<json::Object>());
|
||||
return status;
|
||||
}
|
||||
|
||||
Status OSRM::Nearest(const NearestParameters ¶ms, engine::api::ResultT &result) const
|
||||
{
|
||||
return engine_->Nearest(params, result);
|
||||
}
|
||||
|
||||
Status OSRM::Trip(const engine::api::TripParameters ¶ms, json::Object &json_result) const
|
||||
{
|
||||
osrm::engine::api::ResultT result = json::Object();
|
||||
auto status = engine_->Trip(params, result);
|
||||
json_result = std::move(result.get<json::Object>());
|
||||
return status;
|
||||
}
|
||||
|
||||
engine::Status OSRM::Trip(const engine::api::TripParameters ¶ms,
|
||||
osrm::engine::api::ResultT &result) const
|
||||
engine::api::ResultT &result) const
|
||||
{
|
||||
return engine_->Trip(params, result);
|
||||
}
|
||||
|
||||
engine::Status OSRM::Match(const engine::api::MatchParameters ¶ms,
|
||||
osrm::engine::api::ResultT &result) const
|
||||
Status OSRM::Match(const engine::api::MatchParameters ¶ms, json::Object &json_result) const
|
||||
{
|
||||
osrm::engine::api::ResultT result = json::Object();
|
||||
auto status = engine_->Match(params, result);
|
||||
json_result = std::move(result.get<json::Object>());
|
||||
return status;
|
||||
}
|
||||
|
||||
Status OSRM::Match(const MatchParameters ¶ms, engine::api::ResultT &result) const
|
||||
{
|
||||
return engine_->Match(params, result);
|
||||
}
|
||||
|
||||
engine::Status OSRM::Tile(const engine::api::TileParameters ¶ms,
|
||||
osrm::engine::api::ResultT &result) const
|
||||
Status OSRM::Tile(const engine::api::TileParameters ¶ms, std::string &str_result) const
|
||||
{
|
||||
osrm::engine::api::ResultT result = std::string();
|
||||
auto status = engine_->Tile(params, result);
|
||||
str_result = std::move(result.get<std::string>());
|
||||
return status;
|
||||
}
|
||||
|
||||
Status OSRM::Tile(const engine::api::TileParameters ¶ms, engine::api::ResultT &result) const
|
||||
{
|
||||
return engine_->Tile(params, result);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user