Move server configuration from method parameter to a struct

This commit is contained in:
Frédéric Rodrigo
2014-12-23 15:34:54 +01:00
committed by Frederic Rodrigo
parent 7075a8a8ef
commit ced64d7a09
6 changed files with 106 additions and 13 deletions
+2 -2
View File
@@ -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);
};
+9 -8
View File
@@ -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
View File
@@ -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);