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