instantiate different inherited class at bcp that provides all data
This commit is contained in:
parent
5abe7bc7e5
commit
34ee6411d5
@ -20,7 +20,10 @@ or see http://www.gnu.org/licenses/agpl.txt.
|
||||
|
||||
#include "OSRM.h"
|
||||
|
||||
OSRM::OSRM(const char * server_ini_path) {
|
||||
OSRM::OSRM(const char * server_ini_path, const bool use_shared_memory)
|
||||
: use_shared_memory(use_shared_memory)
|
||||
{
|
||||
if( !use_shared_memory ) {
|
||||
if( !testDataFile(server_ini_path) ){
|
||||
std::string error_message = std::string(server_ini_path) + " not found";
|
||||
throw OSRMException(error_message.c_str());
|
||||
@ -94,6 +97,20 @@ OSRM::OSRM(const char * server_ini_path) {
|
||||
RegisterPlugin(new NearestPlugin(objects));
|
||||
RegisterPlugin(new TimestampPlugin(objects));
|
||||
RegisterPlugin(new ViaRoutePlugin(objects));
|
||||
|
||||
} else {
|
||||
//TODO: fetch pointers from shared memory
|
||||
|
||||
//TODO: objects = new QueryObjectsStorage()
|
||||
|
||||
//TODO: generate shared memory plugins
|
||||
RegisterPlugin(new HelloWorldPlugin());
|
||||
RegisterPlugin(new LocatePlugin(objects));
|
||||
RegisterPlugin(new NearestPlugin(objects));
|
||||
RegisterPlugin(new TimestampPlugin(objects));
|
||||
RegisterPlugin(new ViaRoutePlugin(objects));
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
OSRM::~OSRM() {
|
||||
|
@ -47,12 +47,13 @@ class OSRM : boost::noncopyable {
|
||||
typedef boost::unordered_map<std::string, BasePlugin *> PluginMap;
|
||||
QueryObjectsStorage * objects;
|
||||
public:
|
||||
OSRM(const char * server_ini_path);
|
||||
OSRM(const char * server_ini_path, const bool use_shared_memory = false);
|
||||
~OSRM();
|
||||
void RunQuery(RouteParameters & route_parameters, http::Reply & reply);
|
||||
private:
|
||||
void RegisterPlugin(BasePlugin * plugin);
|
||||
PluginMap pluginMap;
|
||||
const bool use_shared_memory;
|
||||
};
|
||||
|
||||
#endif //OSRM_H
|
||||
|
Loading…
Reference in New Issue
Block a user