diff --git a/3party/osrm/osrm-backend/mapsme/converter.cpp b/3party/osrm/osrm-backend/mapsme/converter.cpp index 452b2b4fda..dc67df2243 100644 --- a/3party/osrm/osrm-backend/mapsme/converter.cpp +++ b/3party/osrm/osrm-backend/mapsme/converter.cpp @@ -9,6 +9,7 @@ //#include "../../../../routing/osrm_data_facade.hpp" #include "../../../succinct/elias_fano.hpp" +#include "../../../succinct/elias_fano_compressed_list.hpp" #include "../../../succinct/gamma_vector.hpp" #include "../../../succinct/mapper.hpp" @@ -94,24 +95,13 @@ void Converter::run(const std::string & name) std::cout << "--- Save edge data" << std::endl; - succinct::gamma_vector edgeVector(edgesData); + succinct::elias_fano_compressed_list edgeVector(edgesData); fileName = name + ".edgedata"; succinct::mapper::freeze(edgeVector, fileName.c_str()); - std::cout << "--- Save edge shortcut id's" << std::endl; + succinct::elias_fano_compressed_list edgeIdVector(edgeId); fileName = name + ".edgeid"; - std::ofstream stream; - stream.open(fileName); - if (stream.is_open()) - { - stream.write(reinterpret_cast(edgeId.data()), sizeof(uint32_t) * edgeId.size()); - stream.close(); - } - else - { - std::cout << "Can't open file " << fileName << std::endl; - std::terminate(); - } + succinct::mapper::freeze(edgeIdVector, fileName.c_str()); std::cout << "--- Save edge shortcuts" << std::endl; succinct::bit_vector shortcutsVector(shortcuts); diff --git a/routing/osrm_data_facade.hpp b/routing/osrm_data_facade.hpp index 1664844859..065a437934 100644 --- a/routing/osrm_data_facade.hpp +++ b/routing/osrm_data_facade.hpp @@ -7,6 +7,7 @@ #include "../coding/file_container.hpp" #include "../../../succinct/elias_fano.hpp" +#include "../../../succinct/elias_fano_compressed_list.hpp" #include "../../../succinct/gamma_vector.hpp" #include "../../../succinct/bit_vector.hpp" #include "../../../succinct/mapper.hpp" @@ -21,10 +22,10 @@ template class OsrmDataFacade : public BaseDataFacade super; - succinct::gamma_vector m_edgeData; + succinct::elias_fano_compressed_list m_edgeData; succinct::bit_vector m_shortcuts; succinct::elias_fano m_fanoMatrix; - uint32_t const * m_edgeId; + succinct::elias_fano_compressed_list m_edgeId; FilesMappingContainer const & m_container; @@ -45,7 +46,7 @@ public: m_handleEdgeId = m_container.Map(ROUTING_EDGEID_FILE_TAG); ASSERT(m_handleEdgeId.IsValid(), ()); - m_edgeId = reinterpret_cast(m_handleEdgeId.GetData()); + succinct::mapper::map(m_edgeId, m_handleEdgeId.GetData()); m_handleShortcuts = m_container.Map(ROUTING_SHORTCUTS_FILE_TAG); ASSERT(m_handleShortcuts.IsValid(), ());