remove deprecated code
This commit is contained in:
		
							parent
							
								
									f95d1fa8ba
								
							
						
					
					
						commit
						7175180dc9
					
				@ -1,140 +0,0 @@
 | 
				
			|||||||
/*
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Copyright (c) 2013, Project OSRM, Dennis Luxen, others
 | 
					 | 
				
			||||||
All rights reserved.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Redistribution and use in source and binary forms, with or without modification,
 | 
					 | 
				
			||||||
are permitted provided that the following conditions are met:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Redistributions of source code must retain the above copyright notice, this list
 | 
					 | 
				
			||||||
of conditions and the following disclaimer.
 | 
					 | 
				
			||||||
Redistributions in binary form must reproduce the above copyright notice, this
 | 
					 | 
				
			||||||
list of conditions and the following disclaimer in the documentation and/or
 | 
					 | 
				
			||||||
other materials provided with the distribution.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
 | 
					 | 
				
			||||||
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
 | 
					 | 
				
			||||||
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
 | 
					 | 
				
			||||||
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
 | 
					 | 
				
			||||||
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
 | 
					 | 
				
			||||||
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
 | 
					 | 
				
			||||||
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
 | 
					 | 
				
			||||||
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 | 
					 | 
				
			||||||
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
 | 
					 | 
				
			||||||
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
*/
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#include "BaseParser.h"
 | 
					 | 
				
			||||||
#include "ExtractionWay.h"
 | 
					 | 
				
			||||||
#include "ScriptingEnvironment.h"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#include "../DataStructures/ImportNode.h"
 | 
					 | 
				
			||||||
#include "../Util/LuaUtil.h"
 | 
					 | 
				
			||||||
#include "../Util/OSRMException.h"
 | 
					 | 
				
			||||||
#include "../Util/simple_logger.hpp"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#include <boost/algorithm/string.hpp>
 | 
					 | 
				
			||||||
#include <boost/algorithm/string/regex.hpp>
 | 
					 | 
				
			||||||
#include <boost/ref.hpp>
 | 
					 | 
				
			||||||
#include <boost/regex.hpp>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
BaseParser::BaseParser(ExtractorCallbacks *extractor_callbacks,
 | 
					 | 
				
			||||||
                       ScriptingEnvironment &scripting_environment)
 | 
					 | 
				
			||||||
    : extractor_callbacks(extractor_callbacks),
 | 
					 | 
				
			||||||
      lua_state(scripting_environment.getLuaState()),
 | 
					 | 
				
			||||||
      scripting_environment(scripting_environment), use_turn_restrictions(true)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
    ReadUseRestrictionsSetting();
 | 
					 | 
				
			||||||
    ReadRestrictionExceptions();
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
void BaseParser::ReadUseRestrictionsSetting()
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
    if (0 != luaL_dostring(lua_state, "return use_turn_restrictions\n"))
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        use_turn_restrictions = false;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
    else if (lua_isboolean(lua_state, -1))
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        use_turn_restrictions = lua_toboolean(lua_state, -1);
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    if (use_turn_restrictions)
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        SimpleLogger().Write() << "Using turn restrictions";
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
    else
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        SimpleLogger().Write() << "Ignoring turn restrictions";
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
void BaseParser::ReadRestrictionExceptions()
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
    if (lua_function_exists(lua_state, "get_exceptions"))
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        // get list of turn restriction exceptions
 | 
					 | 
				
			||||||
        luabind::call_function<void>(
 | 
					 | 
				
			||||||
            lua_state, "get_exceptions", boost::ref(restriction_exceptions));
 | 
					 | 
				
			||||||
        const unsigned exception_count = restriction_exceptions.size();
 | 
					 | 
				
			||||||
        SimpleLogger().Write() << "Found " << exception_count
 | 
					 | 
				
			||||||
                               << " exceptions to turn restrictions:";
 | 
					 | 
				
			||||||
        for (const std::string &str : restriction_exceptions)
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
            SimpleLogger().Write() << "  " << str;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
    else
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        SimpleLogger().Write() << "Found no exceptions to turn restrictions";
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
void BaseParser::report_errors(lua_State *lua_state, const int status) const
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
    if (0 != status)
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        std::cerr << "-- " << lua_tostring(lua_state, -1) << std::endl;
 | 
					 | 
				
			||||||
        lua_pop(lua_state, 1); // remove error message
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
void BaseParser::ParseNodeInLua(ImportNode &node, lua_State *local_lua_state)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
    luabind::call_function<void>(local_lua_state, "node_function", boost::ref(node));
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
void BaseParser::ParseWayInLua(ExtractionWay &way, lua_State *local_lua_state)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
    luabind::call_function<void>(local_lua_state, "way_function", boost::ref(way));
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
bool BaseParser::ShouldIgnoreRestriction(const std::string &except_tag_string) const
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
    // should this restriction be ignored? yes if there's an overlap between:
 | 
					 | 
				
			||||||
    // a) the list of modes in the except tag of the restriction
 | 
					 | 
				
			||||||
    //    (except_tag_string), eg: except=bus;bicycle
 | 
					 | 
				
			||||||
    // b) the lua profile defines a hierachy of modes,
 | 
					 | 
				
			||||||
    //    eg: [access, vehicle, bicycle]
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    if (except_tag_string.empty())
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        return false;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    // Be warned, this is quadratic work here, but we assume that
 | 
					 | 
				
			||||||
    // only a few exceptions are actually defined.
 | 
					 | 
				
			||||||
    std::vector<std::string> exceptions;
 | 
					 | 
				
			||||||
    boost::algorithm::split_regex(exceptions, except_tag_string, boost::regex("[;][ ]*"));
 | 
					 | 
				
			||||||
    for (std::string ¤t_string : exceptions)
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        const auto string_iterator =
 | 
					 | 
				
			||||||
            std::find(restriction_exceptions.begin(), restriction_exceptions.end(), current_string);
 | 
					 | 
				
			||||||
        if (restriction_exceptions.end() != string_iterator)
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
            return true;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
    return false;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
@ -1,67 +0,0 @@
 | 
				
			|||||||
/*
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Copyright (c) 2013, Project OSRM, Dennis Luxen, others
 | 
					 | 
				
			||||||
All rights reserved.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Redistribution and use in source and binary forms, with or without modification,
 | 
					 | 
				
			||||||
are permitted provided that the following conditions are met:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Redistributions of source code must retain the above copyright notice, this list
 | 
					 | 
				
			||||||
of conditions and the following disclaimer.
 | 
					 | 
				
			||||||
Redistributions in binary form must reproduce the above copyright notice, this
 | 
					 | 
				
			||||||
list of conditions and the following disclaimer in the documentation and/or
 | 
					 | 
				
			||||||
other materials provided with the distribution.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
 | 
					 | 
				
			||||||
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
 | 
					 | 
				
			||||||
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
 | 
					 | 
				
			||||||
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
 | 
					 | 
				
			||||||
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
 | 
					 | 
				
			||||||
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
 | 
					 | 
				
			||||||
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
 | 
					 | 
				
			||||||
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 | 
					 | 
				
			||||||
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
 | 
					 | 
				
			||||||
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
*/
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#ifndef BASEPARSER_H_
 | 
					 | 
				
			||||||
#define BASEPARSER_H_
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#include <string>
 | 
					 | 
				
			||||||
#include <vector>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
struct lua_State;
 | 
					 | 
				
			||||||
class ExtractorCallbacks;
 | 
					 | 
				
			||||||
class ScriptingEnvironment;
 | 
					 | 
				
			||||||
struct ExtractionWay;
 | 
					 | 
				
			||||||
struct ImportNode;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
class BaseParser
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
  public:
 | 
					 | 
				
			||||||
    BaseParser() = delete;
 | 
					 | 
				
			||||||
    BaseParser(const BaseParser &) = delete;
 | 
					 | 
				
			||||||
    BaseParser(ExtractorCallbacks *extractor_callbacks,
 | 
					 | 
				
			||||||
               ScriptingEnvironment &scripting_environment);
 | 
					 | 
				
			||||||
    virtual ~BaseParser() {}
 | 
					 | 
				
			||||||
    virtual bool ReadHeader() = 0;
 | 
					 | 
				
			||||||
    virtual bool Parse() = 0;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    virtual void ParseNodeInLua(ImportNode &node, lua_State *lua_state);
 | 
					 | 
				
			||||||
    virtual void ParseWayInLua(ExtractionWay &way, lua_State *lua_state);
 | 
					 | 
				
			||||||
    virtual void report_errors(lua_State *lua_state, const int status) const;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  protected:
 | 
					 | 
				
			||||||
    virtual void ReadUseRestrictionsSetting();
 | 
					 | 
				
			||||||
    virtual void ReadRestrictionExceptions();
 | 
					 | 
				
			||||||
    virtual bool ShouldIgnoreRestriction(const std::string &except_tag_string) const;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    ExtractorCallbacks *extractor_callbacks;
 | 
					 | 
				
			||||||
    lua_State *lua_state;
 | 
					 | 
				
			||||||
    ScriptingEnvironment &scripting_environment;
 | 
					 | 
				
			||||||
    std::vector<std::string> restriction_exceptions;
 | 
					 | 
				
			||||||
    bool use_turn_restrictions;
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#endif /* BASEPARSER_H_ */
 | 
					 | 
				
			||||||
		Loading…
	
		Reference in New Issue
	
	Block a user