Move server configuration from method parameter to a struct
This commit is contained in:
committed by
Frederic Rodrigo
parent
7075a8a8ef
commit
ced64d7a09
+2
-2
@@ -28,7 +28,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
#ifndef OSRM_H
|
||||
#define OSRM_H
|
||||
|
||||
#include <osrm/ServerPaths.h>
|
||||
#include <osrm/ServerConfig.h>
|
||||
|
||||
#include <memory>
|
||||
|
||||
@@ -46,7 +46,7 @@ class OSRM
|
||||
std::unique_ptr<OSRM_impl> OSRM_pimpl_;
|
||||
|
||||
public:
|
||||
explicit OSRM(ServerPaths paths, const bool use_shared_memory = false, const int max_locations_distance_table = 100);
|
||||
explicit OSRM(ServerConfig serverConfig);
|
||||
~OSRM();
|
||||
void RunQuery(RouteParameters &route_parameters, http::Reply &reply);
|
||||
};
|
||||
|
||||
@@ -32,7 +32,7 @@ namespace boost { namespace interprocess { class named_mutex; } }
|
||||
|
||||
#include <osrm/Reply.h>
|
||||
#include <osrm/RouteParameters.h>
|
||||
#include <osrm/ServerPaths.h>
|
||||
#include <osrm/ServerConfig.h>
|
||||
|
||||
#include "../plugins/distance_table.hpp"
|
||||
#include "../plugins/hello_world.hpp"
|
||||
@@ -57,9 +57,9 @@ namespace boost { namespace interprocess { class named_mutex; } }
|
||||
#include <utility>
|
||||
#include <vector>
|
||||
|
||||
OSRM_impl::OSRM_impl(ServerPaths server_paths, const bool use_shared_memory, const int max_locations_distance_table)
|
||||
OSRM_impl::OSRM_impl(ServerConfig serverConfig)
|
||||
{
|
||||
if (use_shared_memory)
|
||||
if (serverConfig.use_shared_memory)
|
||||
{
|
||||
barrier = osrm::make_unique<SharedBarriers>();
|
||||
query_data_facade = new SharedDataFacade<QueryEdge::EdgeData>();
|
||||
@@ -67,12 +67,13 @@ OSRM_impl::OSRM_impl(ServerPaths server_paths, const bool use_shared_memory, con
|
||||
else
|
||||
{
|
||||
// populate base path
|
||||
populate_base_path(server_paths);
|
||||
query_data_facade = new InternalDataFacade<QueryEdge::EdgeData>(server_paths);
|
||||
populate_base_path(serverConfig.server_paths);
|
||||
query_data_facade = new InternalDataFacade<QueryEdge::EdgeData>(serverConfig.server_paths);
|
||||
}
|
||||
|
||||
// The following plugins handle all requests.
|
||||
RegisterPlugin(new DistanceTablePlugin<BaseDataFacade<QueryEdge::EdgeData>>(query_data_facade, max_locations_distance_table));
|
||||
RegisterPlugin(new DistanceTablePlugin<BaseDataFacade<QueryEdge::EdgeData>>(query_data_facade,
|
||||
serverConfig.max_locations_distance_table));
|
||||
RegisterPlugin(new HelloWorldPlugin());
|
||||
RegisterPlugin(new LocatePlugin<BaseDataFacade<QueryEdge::EdgeData>>(query_data_facade));
|
||||
RegisterPlugin(new NearestPlugin<BaseDataFacade<QueryEdge::EdgeData>>(query_data_facade));
|
||||
@@ -152,8 +153,8 @@ void OSRM_impl::RunQuery(RouteParameters &route_parameters, http::Reply &reply)
|
||||
|
||||
// proxy code for compilation firewall
|
||||
|
||||
OSRM::OSRM(ServerPaths paths, const bool use_shared_memory, const int max_locations_distance_table)
|
||||
: OSRM_pimpl_(osrm::make_unique<OSRM_impl>(paths, use_shared_memory, max_locations_distance_table))
|
||||
OSRM::OSRM(ServerConfig server_config)
|
||||
: OSRM_pimpl_(osrm::make_unique<OSRM_impl>(server_config))
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
+3
-2
@@ -32,8 +32,9 @@ class BasePlugin;
|
||||
namespace http { class Reply; }
|
||||
struct RouteParameters;
|
||||
|
||||
#include <osrm/ServerPaths.h>
|
||||
#include <osrm/ServerConfig.h>
|
||||
|
||||
#include "../data_structures/server_config.hpp"
|
||||
#include "../data_structures/query_edge.hpp"
|
||||
|
||||
#include <memory>
|
||||
@@ -49,7 +50,7 @@ class OSRM_impl
|
||||
using PluginMap = std::unordered_map<std::string, BasePlugin *>;
|
||||
|
||||
public:
|
||||
OSRM_impl(ServerPaths paths, const bool use_shared_memory, const int max_locations_distance_table);
|
||||
OSRM_impl(ServerConfig serverConfig);
|
||||
OSRM_impl(const OSRM_impl &) = delete;
|
||||
virtual ~OSRM_impl();
|
||||
void RunQuery(RouteParameters &route_parameters, http::Reply &reply);
|
||||
|
||||
Reference in New Issue
Block a user