/srv/osrm/osrm-backend/src/engine
NameSizeModeActions
api/-0755rm
datafacade/-0755rm
guidance/-0755rm
plugins/-0755rm
routing_algorithms/-0755rm
douglas_peucker.cpp44820644editdlrm
engine_config.cpp11580644editdlrm
hint.cpp39020644editdlrm
polyline_compressor.cpp21320644editdlrm
search_engine_data.cpp34050644editdlrm
Edit: /srv/osrm/osrm-backend/src/engine/search_engine_data.cpp (3405B)
#include "engine/search_engine_data.hpp" namespace osrm::engine { // CH heaps using CH = routing_algorithms::ch::Algorithm; SearchEngineData::SearchEngineHeapPtr SearchEngineData::forward_heap_1; SearchEngineData::SearchEngineHeapPtr SearchEngineData::reverse_heap_1; SearchEngineData::SearchEngineHeapPtr SearchEngineData::forward_heap_2; SearchEngineData::SearchEngineHeapPtr SearchEngineData::reverse_heap_2; SearchEngineData::SearchEngineHeapPtr SearchEngineData::forward_heap_3; SearchEngineData::SearchEngineHeapPtr SearchEngineData::reverse_heap_3; SearchEngineData::ManyToManyHeapPtr SearchEngineData::many_to_many_heap; void SearchEngineData::InitializeOrClearFirstThreadLocalStorage(unsigned number_of_nodes) { if (forward_heap_1.get()) { forward_heap_1->Clear(); } else { forward_heap_1.reset(new QueryHeap(number_of_nodes)); } if (reverse_heap_1.get()) { reverse_heap_1->Clear(); } else { reverse_heap_1.reset(new QueryHeap(number_of_nodes)); } } void SearchEngineData::InitializeOrClearSecondThreadLocalStorage(unsigned number_of_nodes) { if (forward_heap_2.get()) { forward_heap_2->Clear(); } else { forward_heap_2.reset(new QueryHeap(number_of_nodes)); } if (reverse_heap_2.get()) { reverse_heap_2->Clear(); } else { reverse_heap_2.reset(new QueryHeap(number_of_nodes)); } } void SearchEngineData::InitializeOrClearThirdThreadLocalStorage(unsigned number_of_nodes) { if (forward_heap_3.get()) { forward_heap_3->Clear(); } else { forward_heap_3.reset(new QueryHeap(number_of_nodes)); } if (reverse_heap_3.get()) { reverse_heap_3->Clear(); } else { reverse_heap_3.reset(new QueryHeap(number_of_nodes)); } } void SearchEngineData::InitializeOrClearManyToManyThreadLocalStorage(unsigned number_of_nodes) { if (many_to_many_heap.get()) { many_to_many_heap->Clear(); } else { many_to_many_heap.reset(new ManyToManyQueryHeap(number_of_nodes)); } } // MLD using MLD = routing_algorithms::mld::Algorithm; SearchEngineData::SearchEngineHeapPtr SearchEngineData::forward_heap_1; SearchEngineData::SearchEngineHeapPtr SearchEngineData::reverse_heap_1; SearchEngineData::ManyToManyHeapPtr SearchEngineData::many_to_many_heap; void SearchEngineData::InitializeOrClearFirstThreadLocalStorage( unsigned number_of_nodes, unsigned number_of_boundary_nodes) { if (forward_heap_1.get()) { forward_heap_1->Clear(); } else { forward_heap_1.reset(new QueryHeap(number_of_nodes, number_of_boundary_nodes)); } if (reverse_heap_1.get()) { reverse_heap_1->Clear(); } else { reverse_heap_1.reset(new QueryHeap(number_of_nodes, number_of_boundary_nodes)); } } void SearchEngineData::InitializeOrClearManyToManyThreadLocalStorage( unsigned number_of_nodes, unsigned number_of_boundary_nodes) { if (many_to_many_heap.get()) { many_to_many_heap->Clear(); } else { many_to_many_heap.reset(new ManyToManyQueryHeap(number_of_nodes, number_of_boundary_nodes)); } } } // namespace osrm::engine