/
srv
/
osrm
/
osrm-backend
/
src
/
engine
/
datafacade
/
/srv/osrm/osrm-backend/src/engine/datafacade
mkdir
upload
Name
Size
Mode
Actions
mmap_memory_allocator.cpp
2621
0644
edit
dl
rm
process_memory_allocator.cpp
1285
0644
edit
dl
rm
shared_memory_allocator.cpp
1340
0644
edit
dl
rm
Edit:
/srv/osrm/osrm-backend/src/engine/datafacade/process_memory_allocator.cpp
(1285B)
#include "engine/datafacade/process_memory_allocator.hpp" #include "storage/storage.hpp" #include "boost/assert.hpp" namespace osrm::engine::datafacade { ProcessMemoryAllocator::ProcessMemoryAllocator(const storage::StorageConfig &config) { storage::Storage storage(config); // Calculate the layout/size of the memory block auto static_files = storage.GetStaticFiles(); auto updatable_files = storage.GetUpdatableFiles(); std::unique_ptr<storage::BaseDataLayout> layout = std::make_unique<storage::ContiguousDataLayout>(); storage.PopulateLayoutWithRTree(*layout); storage.PopulateLayout(*layout, static_files); storage.PopulateLayout(*layout, updatable_files); // Allocate the memory block, then load data from files into it internal_memory = std::make_unique<char[]>(layout->GetSizeOfLayout()); std::vector<storage::SharedDataIndex::AllocatedRegion> regions; regions.push_back({internal_memory.get(), std::move(layout)}); index = {std::move(regions)}; storage.PopulateStaticData(index); storage.PopulateUpdatableData(index); } ProcessMemoryAllocator::~ProcessMemoryAllocator() {} const storage::SharedDataIndex &ProcessMemoryAllocator::GetIndex() { return index; } } // namespace osrm::engine::datafacade
Save
cmd:
run