Enable all plugins with aStatus::Error return code fallback for not implemented ones
This commit is contained in:
parent
1895fee1c9
commit
bd371a11ad
@ -29,16 +29,16 @@ namespace api
|
||||
struct RouteParameters;
|
||||
struct TableParameters;
|
||||
struct NearestParameters;
|
||||
// struct TripParameters;
|
||||
// struct MatchParameters;
|
||||
struct TripParameters;
|
||||
struct MatchParameters;
|
||||
}
|
||||
namespace plugins
|
||||
{
|
||||
class ViaRoutePlugin;
|
||||
class TablePlugin;
|
||||
class NearestPlugin;
|
||||
// class TripPlugin;
|
||||
// class MatchPlugin;
|
||||
class TripPlugin;
|
||||
class MatchPlugin;
|
||||
}
|
||||
// End fwd decls
|
||||
|
||||
@ -64,8 +64,8 @@ class Engine final
|
||||
Status Route(const api::RouteParameters ¶meters, util::json::Object &result);
|
||||
Status Table(const api::TableParameters ¶meters, util::json::Object &result);
|
||||
Status Nearest(const api::NearestParameters ¶meters, util::json::Object &result);
|
||||
// Status Trip(const api::TripParameters ¶meters, util::json::Object &result);
|
||||
// Status Match(const api::MatchParameters ¶meters, util::json::Object &result);
|
||||
Status Trip(const api::TripParameters ¶meters, util::json::Object &result);
|
||||
Status Match(const api::MatchParameters ¶meters, util::json::Object &result);
|
||||
|
||||
private:
|
||||
std::unique_ptr<EngineLock> lock;
|
||||
|
@ -47,27 +47,32 @@ struct Object;
|
||||
namespace engine
|
||||
{
|
||||
class Engine;
|
||||
|
||||
struct EngineConfig;
|
||||
namespace api
|
||||
{
|
||||
struct RouteParameters;
|
||||
struct TableParameters;
|
||||
struct NearestParameters;
|
||||
// struct TripParameters;
|
||||
// struct MatchParameters;
|
||||
struct TripParameters;
|
||||
struct MatchParameters;
|
||||
}
|
||||
}
|
||||
|
||||
// End fwd decls
|
||||
|
||||
using engine::EngineConfig;
|
||||
using engine::api::RouteParameters;
|
||||
using engine::api::TableParameters;
|
||||
using engine::api::NearestParameters;
|
||||
// using engine::api::TripParameters;
|
||||
// using engine::api::MatchParameters;
|
||||
using engine::api::TripParameters;
|
||||
using engine::api::MatchParameters;
|
||||
|
||||
namespace json = util::json;
|
||||
|
||||
class OSRM
|
||||
// OSRM API
|
||||
|
||||
class OSRM final
|
||||
{
|
||||
public:
|
||||
explicit OSRM(EngineConfig &config);
|
||||
@ -79,8 +84,8 @@ class OSRM
|
||||
Status Route(const RouteParameters ¶meters, json::Object &result);
|
||||
Status Table(const TableParameters ¶meters, json::Object &result);
|
||||
Status Nearest(const NearestParameters ¶meters, json::Object &result);
|
||||
// Status Trip(const TripParameters ¶meters, json::Object &result);
|
||||
// Status Match(const MatchParameters ¶meters, json::Object &result);
|
||||
Status Trip(const TripParameters ¶meters, json::Object &result);
|
||||
Status Match(const MatchParameters ¶meters, json::Object &result);
|
||||
|
||||
private:
|
||||
std::unique_ptr<engine::Engine> engine_;
|
||||
|
@ -113,6 +113,13 @@ osrm::engine::Status RunQuery(const std::unique_ptr<osrm::engine::Engine::Engine
|
||||
lock->DecreaseQueryCount();
|
||||
return status;
|
||||
}
|
||||
|
||||
template <typename Plugin, typename Facade, typename... Args>
|
||||
std::unique_ptr<Plugin> create(Facade &facade, Args... args)
|
||||
{
|
||||
return osrm::util::make_unique<Plugin>(facade, std::forward<Args>(args)...);
|
||||
}
|
||||
|
||||
} // anon. ns
|
||||
|
||||
namespace osrm
|
||||
@ -133,10 +140,14 @@ Engine::Engine(EngineConfig &config)
|
||||
query_data_facade = util::make_unique<datafacade::InternalDataFacade>(config.server_paths);
|
||||
}
|
||||
|
||||
route_plugin = util::make_unique<plugins::ViaRoutePlugin>(*query_data_facade,
|
||||
config.max_locations_viaroute);
|
||||
table_plugin = util::make_unique<plugins::TablePlugin>(*query_data_facade,
|
||||
config.max_locations_distance_table);
|
||||
// Register plugins
|
||||
using namespace plugins;
|
||||
|
||||
route_plugin = create<ViaRoutePlugin>(*query_data_facade, config.max_locations_viaroute);
|
||||
table_plugin = create<TablePlugin>(*query_data_facade, config.max_locations_distance_table);
|
||||
nearest_plugin = create<NearestPlugin>(*query_data_facade);
|
||||
// trip_plugin = ceate<TripPlugin>(*query_data_facade, config.max_locations_trip);
|
||||
// match_plugin = create<MatchPlugin>(*query_data_facade, config.max_locations_map_matching);
|
||||
}
|
||||
|
||||
// make sure we deallocate the unique ptr at a position where we know the size of the plugins
|
||||
@ -159,15 +170,17 @@ Status Engine::Nearest(const api::NearestParameters ¶ms, util::json::Object
|
||||
return RunQuery(lock, *query_data_facade, params, *nearest_plugin, result);
|
||||
}
|
||||
|
||||
//Status Engine::Trip(const api::TripParameters ¶ms, util::json::Object &result)
|
||||
//{
|
||||
// return RunQuery(lock, *query_data_facade, params, *trip_plugin, result);
|
||||
//}
|
||||
//
|
||||
//Status Engine::Match(const api::MatchParameters ¶ms, util::json::Object &result)
|
||||
//{
|
||||
// return RunQuery(lock, *query_data_facade, params, *match_plugin, result);
|
||||
//}
|
||||
Status Engine::Trip(const api::TripParameters ¶ms, util::json::Object &result)
|
||||
{
|
||||
// return RunQuery(lock, *query_data_facade, params, *trip_plugin, result);
|
||||
return Status::Error;
|
||||
}
|
||||
|
||||
Status Engine::Match(const api::MatchParameters ¶ms, util::json::Object &result)
|
||||
{
|
||||
// return RunQuery(lock, *query_data_facade, params, *match_plugin, result);
|
||||
return Status::Error;
|
||||
}
|
||||
|
||||
} // engine ns
|
||||
} // osrm ns
|
||||
|
@ -2,8 +2,8 @@
|
||||
#include "engine/api/route_parameters.hpp"
|
||||
#include "engine/api/table_parameters.hpp"
|
||||
#include "engine/api/nearest_parameters.hpp"
|
||||
//#include "engine/api/trip_parameters.hpp"
|
||||
//#include "engine/api/match_parameters.hpp"
|
||||
#include "engine/api/trip_parameters.hpp"
|
||||
#include "engine/api/match_parameters.hpp"
|
||||
#include "engine/engine.hpp"
|
||||
#include "engine/status.hpp"
|
||||
#include "engine/engine_config.hpp"
|
||||
@ -36,14 +36,14 @@ engine::Status OSRM::Nearest(const engine::api::NearestParameters ¶ms, json:
|
||||
return engine_->Nearest(params, result);
|
||||
}
|
||||
|
||||
//engine::Status OSRM::Trip(const engine::api::TripParameters ¶ms, json::Object &result)
|
||||
//{
|
||||
// return engine_->Trip(params, result);
|
||||
//}
|
||||
//
|
||||
//engine::Status OSRM::Match(const engine::api::MatchParameters ¶ms, json::Object &result)
|
||||
//{
|
||||
// return engine_->Match(params, result);
|
||||
//}
|
||||
engine::Status OSRM::Trip(const engine::api::TripParameters ¶ms, json::Object &result)
|
||||
{
|
||||
return engine_->Trip(params, result);
|
||||
}
|
||||
|
||||
engine::Status OSRM::Match(const engine::api::MatchParameters ¶ms, json::Object &result)
|
||||
{
|
||||
return engine_->Match(params, result);
|
||||
}
|
||||
|
||||
} // ns osrm
|
||||
|
Loading…
Reference in New Issue
Block a user