clang-format

This commit is contained in:
Pepijn Schoen
2017-03-29 14:07:03 +02:00
committed by Patrick Niklaus
parent 266e65e6d2
commit 157ca9161f
19 changed files with 1786 additions and 130 deletions
+9 -4
View File
@@ -18,16 +18,21 @@ namespace customizer
using EdgeBasedGraphEdgeData = partition::EdgeBasedGraphEdgeData;
struct MultiLevelEdgeBasedGraph : public partition::MultiLevelGraph<EdgeBasedGraphEdgeData, osrm::storage::MemorySetting::InternalMemory>
struct MultiLevelEdgeBasedGraph
: public partition::MultiLevelGraph<EdgeBasedGraphEdgeData,
osrm::storage::MemorySetting::InternalMemory>
{
using Base = partition::MultiLevelGraph<EdgeBasedGraphEdgeData, osrm::storage::MemorySetting::InternalMemory>;
using Base = partition::MultiLevelGraph<EdgeBasedGraphEdgeData,
osrm::storage::MemorySetting::InternalMemory>;
using Base::Base;
};
struct MultiLevelEdgeBasedGraphView
: public partition::MultiLevelGraph<EdgeBasedGraphEdgeData, osrm::storage::MemorySetting::SharedMemory>
: public partition::MultiLevelGraph<EdgeBasedGraphEdgeData,
osrm::storage::MemorySetting::SharedMemory>
{
using Base = partition::MultiLevelGraph<EdgeBasedGraphEdgeData, osrm::storage::MemorySetting::SharedMemory>;
using Base = partition::MultiLevelGraph<EdgeBasedGraphEdgeData,
osrm::storage::MemorySetting::SharedMemory>;
using Base::Base;
};
@@ -202,8 +202,10 @@ class ContiguousInternalMemoryDataFacadeBase : public BaseDataFacade
using super = BaseDataFacade;
using IndexBlock = util::RangeTable<16, osrm::storage::MemorySetting::SharedMemory>::BlockT;
using RTreeLeaf = super::RTreeLeaf;
using SharedRTree =
util::StaticRTree<RTreeLeaf, util::ShM<util::Coordinate, osrm::storage::MemorySetting::SharedMemory>::vector, osrm::storage::MemorySetting::SharedMemory>;
using SharedRTree = util::StaticRTree<
RTreeLeaf,
util::ShM<util::Coordinate, osrm::storage::MemorySetting::SharedMemory>::vector,
osrm::storage::MemorySetting::SharedMemory>;
using SharedGeospatialQuery = GeospatialQuery<SharedRTree, BaseDataFacade>;
using RTreeNode = SharedRTree::TreeNode;
@@ -212,28 +214,40 @@ class ContiguousInternalMemoryDataFacadeBase : public BaseDataFacade
extractor::Datasources *m_datasources;
unsigned m_check_sum;
util::ShM<util::Coordinate, osrm::storage::MemorySetting::SharedMemory>::vector m_coordinate_list;
util::ShM<util::Coordinate, osrm::storage::MemorySetting::SharedMemory>::vector
m_coordinate_list;
util::PackedVector<OSMNodeID, osrm::storage::MemorySetting::SharedMemory> m_osmnodeid_list;
util::ShM<GeometryID, osrm::storage::MemorySetting::SharedMemory>::vector m_via_geometry_list;
util::ShM<NameID, osrm::storage::MemorySetting::SharedMemory>::vector m_name_ID_list;
util::ShM<LaneDataID, osrm::storage::MemorySetting::SharedMemory>::vector m_lane_data_id;
util::ShM<extractor::guidance::TurnInstruction, osrm::storage::MemorySetting::SharedMemory>::vector m_turn_instruction_list;
util::ShM<extractor::TravelMode, osrm::storage::MemorySetting::SharedMemory>::vector m_travel_mode_list;
util::ShM<util::guidance::TurnBearing, osrm::storage::MemorySetting::SharedMemory>::vector m_pre_turn_bearing;
util::ShM<util::guidance::TurnBearing, osrm::storage::MemorySetting::SharedMemory>::vector m_post_turn_bearing;
util::ShM<extractor::guidance::TurnInstruction,
osrm::storage::MemorySetting::SharedMemory>::vector m_turn_instruction_list;
util::ShM<extractor::TravelMode, osrm::storage::MemorySetting::SharedMemory>::vector
m_travel_mode_list;
util::ShM<util::guidance::TurnBearing, osrm::storage::MemorySetting::SharedMemory>::vector
m_pre_turn_bearing;
util::ShM<util::guidance::TurnBearing, osrm::storage::MemorySetting::SharedMemory>::vector
m_post_turn_bearing;
util::NameTable m_names_table;
util::ShM<unsigned, osrm::storage::MemorySetting::SharedMemory>::vector m_name_begin_indices;
util::ShM<bool, osrm::storage::MemorySetting::SharedMemory>::vector m_is_core_node;
util::ShM<std::uint32_t, osrm::storage::MemorySetting::SharedMemory>::vector m_lane_description_offsets;
util::ShM<extractor::guidance::TurnLaneType::Mask, osrm::storage::MemorySetting::SharedMemory>::vector m_lane_description_masks;
util::ShM<TurnPenalty, osrm::storage::MemorySetting::SharedMemory>::vector m_turn_weight_penalties;
util::ShM<TurnPenalty, osrm::storage::MemorySetting::SharedMemory>::vector m_turn_duration_penalties;
util::ShM<std::uint32_t, osrm::storage::MemorySetting::SharedMemory>::vector
m_lane_description_offsets;
util::ShM<extractor::guidance::TurnLaneType::Mask,
osrm::storage::MemorySetting::SharedMemory>::vector m_lane_description_masks;
util::ShM<TurnPenalty, osrm::storage::MemorySetting::SharedMemory>::vector
m_turn_weight_penalties;
util::ShM<TurnPenalty, osrm::storage::MemorySetting::SharedMemory>::vector
m_turn_duration_penalties;
extractor::SegmentDataView segment_data;
util::ShM<char, osrm::storage::MemorySetting::SharedMemory>::vector m_datasource_name_data;
util::ShM<std::size_t, osrm::storage::MemorySetting::SharedMemory>::vector m_datasource_name_offsets;
util::ShM<std::size_t, osrm::storage::MemorySetting::SharedMemory>::vector m_datasource_name_lengths;
util::ShM<util::guidance::LaneTupleIdPair, osrm::storage::MemorySetting::SharedMemory>::vector m_lane_tupel_id_pairs;
util::ShM<std::size_t, osrm::storage::MemorySetting::SharedMemory>::vector
m_datasource_name_offsets;
util::ShM<std::size_t, osrm::storage::MemorySetting::SharedMemory>::vector
m_datasource_name_lengths;
util::ShM<util::guidance::LaneTupleIdPair, osrm::storage::MemorySetting::SharedMemory>::vector
m_lane_tupel_id_pairs;
std::unique_ptr<SharedRTree> m_static_rtree;
std::unique_ptr<SharedGeospatialQuery> m_geospatial_query;
@@ -241,17 +255,22 @@ class ContiguousInternalMemoryDataFacadeBase : public BaseDataFacade
util::NameTable m_name_table;
// bearing classes by node based node
util::ShM<BearingClassID, osrm::storage::MemorySetting::SharedMemory>::vector m_bearing_class_id_table;
util::ShM<BearingClassID, osrm::storage::MemorySetting::SharedMemory>::vector
m_bearing_class_id_table;
// entry class IDs
util::ShM<EntryClassID, osrm::storage::MemorySetting::SharedMemory>::vector m_entry_class_id_list;
util::ShM<EntryClassID, osrm::storage::MemorySetting::SharedMemory>::vector
m_entry_class_id_list;
// the look-up table for entry classes. An entry class lists the possibility of entry for all
// available turns. Such a class id is stored with every edge.
util::ShM<util::guidance::EntryClass, osrm::storage::MemorySetting::SharedMemory>::vector m_entry_class_table;
util::ShM<util::guidance::EntryClass, osrm::storage::MemorySetting::SharedMemory>::vector
m_entry_class_table;
// the look-up table for distinct bearing classes. A bearing class lists the available bearings
// at an intersection
std::shared_ptr<util::RangeTable<16, osrm::storage::MemorySetting::SharedMemory>> m_bearing_ranges_table;
util::ShM<DiscreteBearing, osrm::storage::MemorySetting::SharedMemory>::vector m_bearing_values_table;
std::shared_ptr<util::RangeTable<16, osrm::storage::MemorySetting::SharedMemory>>
m_bearing_ranges_table;
util::ShM<DiscreteBearing, osrm::storage::MemorySetting::SharedMemory>::vector
m_bearing_values_table;
// allocator that keeps the allocation data
std::shared_ptr<ContiguousBlockAllocator> allocator;
@@ -327,8 +346,9 @@ class ContiguousInternalMemoryDataFacadeBase : public BaseDataFacade
const auto travel_mode_list_ptr = data_layout.GetBlockPtr<extractor::TravelMode>(
memory_block, storage::DataLayout::TRAVEL_MODE);
util::ShM<extractor::TravelMode, osrm::storage::MemorySetting::SharedMemory>::vector travel_mode_list(
travel_mode_list_ptr, data_layout.num_entries[storage::DataLayout::TRAVEL_MODE]);
util::ShM<extractor::TravelMode, osrm::storage::MemorySetting::SharedMemory>::vector
travel_mode_list(travel_mode_list_ptr,
data_layout.num_entries[storage::DataLayout::TRAVEL_MODE]);
m_travel_mode_list = std::move(travel_mode_list);
const auto lane_data_id_ptr =
@@ -340,16 +360,19 @@ class ContiguousInternalMemoryDataFacadeBase : public BaseDataFacade
const auto lane_tupel_id_pair_ptr =
data_layout.GetBlockPtr<util::guidance::LaneTupleIdPair>(
memory_block, storage::DataLayout::TURN_LANE_DATA);
util::ShM<util::guidance::LaneTupleIdPair, osrm::storage::MemorySetting::SharedMemory>::vector lane_tupel_id_pair(
lane_tupel_id_pair_ptr, data_layout.num_entries[storage::DataLayout::TURN_LANE_DATA]);
util::ShM<util::guidance::LaneTupleIdPair,
osrm::storage::MemorySetting::SharedMemory>::vector
lane_tupel_id_pair(lane_tupel_id_pair_ptr,
data_layout.num_entries[storage::DataLayout::TURN_LANE_DATA]);
m_lane_tupel_id_pairs = std::move(lane_tupel_id_pair);
const auto turn_instruction_list_ptr =
data_layout.GetBlockPtr<extractor::guidance::TurnInstruction>(
memory_block, storage::DataLayout::TURN_INSTRUCTION);
util::ShM<extractor::guidance::TurnInstruction, osrm::storage::MemorySetting::SharedMemory>::vector turn_instruction_list(
turn_instruction_list_ptr,
data_layout.num_entries[storage::DataLayout::TURN_INSTRUCTION]);
util::ShM<extractor::guidance::TurnInstruction,
osrm::storage::MemorySetting::SharedMemory>::vector
turn_instruction_list(turn_instruction_list_ptr,
data_layout.num_entries[storage::DataLayout::TURN_INSTRUCTION]);
m_turn_instruction_list = std::move(turn_instruction_list);
const auto name_id_list_ptr =
@@ -360,20 +383,25 @@ class ContiguousInternalMemoryDataFacadeBase : public BaseDataFacade
const auto entry_class_id_list_ptr =
data_layout.GetBlockPtr<EntryClassID>(memory_block, storage::DataLayout::ENTRY_CLASSID);
typename util::ShM<EntryClassID, osrm::storage::MemorySetting::SharedMemory>::vector entry_class_id_list(
entry_class_id_list_ptr, data_layout.num_entries[storage::DataLayout::ENTRY_CLASSID]);
typename util::ShM<EntryClassID, osrm::storage::MemorySetting::SharedMemory>::vector
entry_class_id_list(entry_class_id_list_ptr,
data_layout.num_entries[storage::DataLayout::ENTRY_CLASSID]);
m_entry_class_id_list = std::move(entry_class_id_list);
const auto pre_turn_bearing_ptr = data_layout.GetBlockPtr<util::guidance::TurnBearing>(
memory_block, storage::DataLayout::PRE_TURN_BEARING);
typename util::ShM<util::guidance::TurnBearing, osrm::storage::MemorySetting::SharedMemory>::vector pre_turn_bearing(
pre_turn_bearing_ptr, data_layout.num_entries[storage::DataLayout::PRE_TURN_BEARING]);
typename util::ShM<util::guidance::TurnBearing,
osrm::storage::MemorySetting::SharedMemory>::vector
pre_turn_bearing(pre_turn_bearing_ptr,
data_layout.num_entries[storage::DataLayout::PRE_TURN_BEARING]);
m_pre_turn_bearing = std::move(pre_turn_bearing);
const auto post_turn_bearing_ptr = data_layout.GetBlockPtr<util::guidance::TurnBearing>(
memory_block, storage::DataLayout::POST_TURN_BEARING);
typename util::ShM<util::guidance::TurnBearing, osrm::storage::MemorySetting::SharedMemory>::vector post_turn_bearing(
post_turn_bearing_ptr, data_layout.num_entries[storage::DataLayout::POST_TURN_BEARING]);
typename util::ShM<util::guidance::TurnBearing,
osrm::storage::MemorySetting::SharedMemory>::vector
post_turn_bearing(post_turn_bearing_ptr,
data_layout.num_entries[storage::DataLayout::POST_TURN_BEARING]);
m_post_turn_bearing = std::move(post_turn_bearing);
}
@@ -406,8 +434,9 @@ class ContiguousInternalMemoryDataFacadeBase : public BaseDataFacade
auto masks_ptr = data_layout.GetBlockPtr<extractor::guidance::TurnLaneType::Mask>(
memory_block, storage::DataLayout::LANE_DESCRIPTION_MASKS);
util::ShM<extractor::guidance::TurnLaneType::Mask, osrm::storage::MemorySetting::SharedMemory>::vector masks(
masks_ptr, data_layout.num_entries[storage::DataLayout::LANE_DESCRIPTION_MASKS]);
util::ShM<extractor::guidance::TurnLaneType::Mask,
osrm::storage::MemorySetting::SharedMemory>::vector
masks(masks_ptr, data_layout.num_entries[storage::DataLayout::LANE_DESCRIPTION_MASKS]);
m_lane_description_masks = std::move(masks);
}
@@ -415,22 +444,25 @@ class ContiguousInternalMemoryDataFacadeBase : public BaseDataFacade
{
auto turn_weight_penalties_ptr = data_layout.GetBlockPtr<TurnPenalty>(
memory_block, storage::DataLayout::TURN_WEIGHT_PENALTIES);
m_turn_weight_penalties = util::ShM<TurnPenalty, osrm::storage::MemorySetting::SharedMemory>::vector(
turn_weight_penalties_ptr,
data_layout.num_entries[storage::DataLayout::TURN_WEIGHT_PENALTIES]);
m_turn_weight_penalties =
util::ShM<TurnPenalty, osrm::storage::MemorySetting::SharedMemory>::vector(
turn_weight_penalties_ptr,
data_layout.num_entries[storage::DataLayout::TURN_WEIGHT_PENALTIES]);
auto turn_duration_penalties_ptr = data_layout.GetBlockPtr<TurnPenalty>(
memory_block, storage::DataLayout::TURN_DURATION_PENALTIES);
m_turn_duration_penalties = util::ShM<TurnPenalty, osrm::storage::MemorySetting::SharedMemory>::vector(
turn_duration_penalties_ptr,
data_layout.num_entries[storage::DataLayout::TURN_DURATION_PENALTIES]);
m_turn_duration_penalties =
util::ShM<TurnPenalty, osrm::storage::MemorySetting::SharedMemory>::vector(
turn_duration_penalties_ptr,
data_layout.num_entries[storage::DataLayout::TURN_DURATION_PENALTIES]);
}
void InitializeGeometryPointers(storage::DataLayout &data_layout, char *memory_block)
{
auto geometries_index_ptr =
data_layout.GetBlockPtr<unsigned>(memory_block, storage::DataLayout::GEOMETRIES_INDEX);
util::ShM<unsigned, osrm::storage::MemorySetting::SharedMemory>::vector geometry_begin_indices(
geometries_index_ptr, data_layout.num_entries[storage::DataLayout::GEOMETRIES_INDEX]);
util::ShM<unsigned, osrm::storage::MemorySetting::SharedMemory>::vector
geometry_begin_indices(geometries_index_ptr,
data_layout.num_entries[storage::DataLayout::GEOMETRIES_INDEX]);
auto geometries_node_list_ptr = data_layout.GetBlockPtr<NodeID>(
memory_block, storage::DataLayout::GEOMETRIES_NODE_LIST);
@@ -440,32 +472,37 @@ class ContiguousInternalMemoryDataFacadeBase : public BaseDataFacade
auto geometries_fwd_weight_list_ptr = data_layout.GetBlockPtr<EdgeWeight>(
memory_block, storage::DataLayout::GEOMETRIES_FWD_WEIGHT_LIST);
util::ShM<EdgeWeight, osrm::storage::MemorySetting::SharedMemory>::vector geometry_fwd_weight_list(
geometries_fwd_weight_list_ptr,
data_layout.num_entries[storage::DataLayout::GEOMETRIES_FWD_WEIGHT_LIST]);
util::ShM<EdgeWeight, osrm::storage::MemorySetting::SharedMemory>::vector
geometry_fwd_weight_list(
geometries_fwd_weight_list_ptr,
data_layout.num_entries[storage::DataLayout::GEOMETRIES_FWD_WEIGHT_LIST]);
auto geometries_rev_weight_list_ptr = data_layout.GetBlockPtr<EdgeWeight>(
memory_block, storage::DataLayout::GEOMETRIES_REV_WEIGHT_LIST);
util::ShM<EdgeWeight, osrm::storage::MemorySetting::SharedMemory>::vector geometry_rev_weight_list(
geometries_rev_weight_list_ptr,
data_layout.num_entries[storage::DataLayout::GEOMETRIES_REV_WEIGHT_LIST]);
util::ShM<EdgeWeight, osrm::storage::MemorySetting::SharedMemory>::vector
geometry_rev_weight_list(
geometries_rev_weight_list_ptr,
data_layout.num_entries[storage::DataLayout::GEOMETRIES_REV_WEIGHT_LIST]);
auto geometries_fwd_duration_list_ptr = data_layout.GetBlockPtr<EdgeWeight>(
memory_block, storage::DataLayout::GEOMETRIES_FWD_DURATION_LIST);
util::ShM<EdgeWeight, osrm::storage::MemorySetting::SharedMemory>::vector geometry_fwd_duration_list(
geometries_fwd_duration_list_ptr,
data_layout.num_entries[storage::DataLayout::GEOMETRIES_FWD_DURATION_LIST]);
util::ShM<EdgeWeight, osrm::storage::MemorySetting::SharedMemory>::vector
geometry_fwd_duration_list(
geometries_fwd_duration_list_ptr,
data_layout.num_entries[storage::DataLayout::GEOMETRIES_FWD_DURATION_LIST]);
auto geometries_rev_duration_list_ptr = data_layout.GetBlockPtr<EdgeWeight>(
memory_block, storage::DataLayout::GEOMETRIES_REV_DURATION_LIST);
util::ShM<EdgeWeight, osrm::storage::MemorySetting::SharedMemory>::vector geometry_rev_duration_list(
geometries_rev_duration_list_ptr,
data_layout.num_entries[storage::DataLayout::GEOMETRIES_REV_DURATION_LIST]);
util::ShM<EdgeWeight, osrm::storage::MemorySetting::SharedMemory>::vector
geometry_rev_duration_list(
geometries_rev_duration_list_ptr,
data_layout.num_entries[storage::DataLayout::GEOMETRIES_REV_DURATION_LIST]);
auto datasources_list_ptr = data_layout.GetBlockPtr<DatasourceID>(
memory_block, storage::DataLayout::DATASOURCES_LIST);
util::ShM<DatasourceID, osrm::storage::MemorySetting::SharedMemory>::vector datasources_list(
datasources_list_ptr, data_layout.num_entries[storage::DataLayout::DATASOURCES_LIST]);
util::ShM<DatasourceID, osrm::storage::MemorySetting::SharedMemory>::vector
datasources_list(datasources_list_ptr,
data_layout.num_entries[storage::DataLayout::DATASOURCES_LIST]);
segment_data = extractor::SegmentDataView{std::move(geometry_begin_indices),
std::move(geometry_node_list),
@@ -483,14 +520,16 @@ class ContiguousInternalMemoryDataFacadeBase : public BaseDataFacade
{
auto bearing_class_id_ptr = data_layout.GetBlockPtr<BearingClassID>(
memory_block, storage::DataLayout::BEARING_CLASSID);
typename util::ShM<BearingClassID, osrm::storage::MemorySetting::SharedMemory>::vector bearing_class_id_table(
bearing_class_id_ptr, data_layout.num_entries[storage::DataLayout::BEARING_CLASSID]);
typename util::ShM<BearingClassID, osrm::storage::MemorySetting::SharedMemory>::vector
bearing_class_id_table(bearing_class_id_ptr,
data_layout.num_entries[storage::DataLayout::BEARING_CLASSID]);
m_bearing_class_id_table = std::move(bearing_class_id_table);
auto bearing_class_ptr = data_layout.GetBlockPtr<DiscreteBearing>(
memory_block, storage::DataLayout::BEARING_VALUES);
typename util::ShM<DiscreteBearing, osrm::storage::MemorySetting::SharedMemory>::vector bearing_class_table(
bearing_class_ptr, data_layout.num_entries[storage::DataLayout::BEARING_VALUES]);
typename util::ShM<DiscreteBearing, osrm::storage::MemorySetting::SharedMemory>::vector
bearing_class_table(bearing_class_ptr,
data_layout.num_entries[storage::DataLayout::BEARING_VALUES]);
m_bearing_values_table = std::move(bearing_class_table);
auto offsets_ptr =
@@ -502,13 +541,18 @@ class ContiguousInternalMemoryDataFacadeBase : public BaseDataFacade
util::ShM<IndexBlock, osrm::storage::MemorySetting::SharedMemory>::vector bearing_blocks(
blocks_ptr, data_layout.num_entries[storage::DataLayout::BEARING_BLOCKS]);
m_bearing_ranges_table = std::make_unique<util::RangeTable<16, osrm::storage::MemorySetting::SharedMemory>>(
bearing_offsets, bearing_blocks, static_cast<unsigned>(m_bearing_values_table.size()));
m_bearing_ranges_table =
std::make_unique<util::RangeTable<16, osrm::storage::MemorySetting::SharedMemory>>(
bearing_offsets,
bearing_blocks,
static_cast<unsigned>(m_bearing_values_table.size()));
auto entry_class_ptr = data_layout.GetBlockPtr<util::guidance::EntryClass>(
memory_block, storage::DataLayout::ENTRY_CLASS);
typename util::ShM<util::guidance::EntryClass, osrm::storage::MemorySetting::SharedMemory>::vector entry_class_table(
entry_class_ptr, data_layout.num_entries[storage::DataLayout::ENTRY_CLASS]);
typename util::ShM<util::guidance::EntryClass,
osrm::storage::MemorySetting::SharedMemory>::vector
entry_class_table(entry_class_ptr,
data_layout.num_entries[storage::DataLayout::ENTRY_CLASS]);
m_entry_class_table = std::move(entry_class_table);
}
@@ -930,15 +974,15 @@ class ContiguousInternalMemoryAlgorithmDataFacade<algorithm::MLD>
memory_block, storage::DataLayout::MLD_PARTITION);
auto partition_entries_count =
data_layout.GetBlockEntries(storage::DataLayout::MLD_PARTITION);
util::ShM<PartitionID, osrm::storage::MemorySetting::SharedMemory>::vector partition(mld_partition_ptr,
partition_entries_count);
util::ShM<PartitionID, osrm::storage::MemorySetting::SharedMemory>::vector partition(
mld_partition_ptr, partition_entries_count);
auto mld_chilren_ptr = data_layout.GetBlockPtr<CellID>(
memory_block, storage::DataLayout::MLD_CELL_TO_CHILDREN);
auto children_entries_count =
data_layout.GetBlockEntries(storage::DataLayout::MLD_CELL_TO_CHILDREN);
util::ShM<CellID, osrm::storage::MemorySetting::SharedMemory>::vector cell_to_children(mld_chilren_ptr,
children_entries_count);
util::ShM<CellID, osrm::storage::MemorySetting::SharedMemory>::vector cell_to_children(
mld_chilren_ptr, children_entries_count);
mld_partition =
partition::MultiLevelPartitionView{level_data, partition, cell_to_children};
@@ -970,15 +1014,18 @@ class ContiguousInternalMemoryAlgorithmDataFacade<algorithm::MLD>
auto cell_level_offsets_entries_count =
data_layout.GetBlockEntries(storage::DataLayout::MLD_CELL_LEVEL_OFFSETS);
util::ShM<EdgeWeight, osrm::storage::MemorySetting::SharedMemory>::vector weights(mld_cell_weights_ptr, weight_entries_count);
util::ShM<NodeID, osrm::storage::MemorySetting::SharedMemory>::vector source_boundary(mld_source_boundary_ptr,
source_boundary_entries_count);
util::ShM<NodeID, osrm::storage::MemorySetting::SharedMemory>::vector destination_boundary(
mld_destination_boundary_ptr, destination_boundary_entries_count);
util::ShM<partition::CellStorageView::CellData, osrm::storage::MemorySetting::SharedMemory>::vector cells(
mld_cells_ptr, cells_entries_counts);
util::ShM<std::uint64_t, osrm::storage::MemorySetting::SharedMemory>::vector level_offsets(mld_cell_level_offsets_ptr,
cell_level_offsets_entries_count);
util::ShM<EdgeWeight, osrm::storage::MemorySetting::SharedMemory>::vector weights(
mld_cell_weights_ptr, weight_entries_count);
util::ShM<NodeID, osrm::storage::MemorySetting::SharedMemory>::vector source_boundary(
mld_source_boundary_ptr, source_boundary_entries_count);
util::ShM<NodeID, osrm::storage::MemorySetting::SharedMemory>::vector
destination_boundary(mld_destination_boundary_ptr,
destination_boundary_entries_count);
util::ShM<partition::CellStorageView::CellData,
osrm::storage::MemorySetting::SharedMemory>::vector
cells(mld_cells_ptr, cells_entries_counts);
util::ShM<std::uint64_t, osrm::storage::MemorySetting::SharedMemory>::vector
level_offsets(mld_cell_level_offsets_ptr, cell_level_offsets_entries_count);
mld_cell_storage = partition::CellStorageView{std::move(weights),
std::move(source_boundary),
@@ -1002,9 +1049,9 @@ class ContiguousInternalMemoryAlgorithmDataFacade<algorithm::MLD>
graph_nodes_ptr, data_layout.num_entries[storage::DataLayout::MLD_GRAPH_NODE_LIST]);
util::ShM<GraphEdge, osrm::storage::MemorySetting::SharedMemory>::vector edge_list(
graph_edges_ptr, data_layout.num_entries[storage::DataLayout::MLD_GRAPH_EDGE_LIST]);
util::ShM<QueryGraph::EdgeOffset, osrm::storage::MemorySetting::SharedMemory>::vector node_to_offset(
graph_node_to_offset_ptr,
data_layout.num_entries[storage::DataLayout::MLD_GRAPH_NODE_TO_OFFSET]);
util::ShM<QueryGraph::EdgeOffset, osrm::storage::MemorySetting::SharedMemory>::vector
node_to_offset(graph_node_to_offset_ptr,
data_layout.num_entries[storage::DataLayout::MLD_GRAPH_NODE_TO_OFFSET]);
query_graph =
QueryGraph(std::move(node_list), std::move(edge_list), std::move(node_to_offset));
File diff suppressed because it is too large Load Diff
+6 -4
View File
@@ -192,10 +192,10 @@ template <osrm::storage::MemorySetting MemorySetting> class SegmentDataContainer
friend void
io::read<MemorySetting>(const boost::filesystem::path &path,
detail::SegmentDataContainerImpl<MemorySetting> &segment_data);
detail::SegmentDataContainerImpl<MemorySetting> &segment_data);
friend void
io::write<MemorySetting>(const boost::filesystem::path &path,
const detail::SegmentDataContainerImpl<MemorySetting> &segment_data);
const detail::SegmentDataContainerImpl<MemorySetting> &segment_data);
private:
Vector<std::uint32_t> index;
@@ -208,8 +208,10 @@ template <osrm::storage::MemorySetting MemorySetting> class SegmentDataContainer
};
}
using SegmentDataView = detail::SegmentDataContainerImpl<osrm::storage::MemorySetting::SharedMemory>;
using SegmentDataContainer = detail::SegmentDataContainerImpl<osrm::storage::MemorySetting::InternalMemory>;
using SegmentDataView =
detail::SegmentDataContainerImpl<osrm::storage::MemorySetting::SharedMemory>;
using SegmentDataContainer =
detail::SegmentDataContainerImpl<osrm::storage::MemorySetting::InternalMemory>;
}
}
+10 -5
View File
@@ -186,7 +186,9 @@ template <osrm::storage::MemorySetting MemorySetting> class CellStorageImpl
CellStorageImpl() {}
template <typename GraphT, typename = std::enable_if<MemorySetting == osrm::storage::MemorySetting::InternalMemory>>
template <
typename GraphT,
typename = std::enable_if<MemorySetting == osrm::storage::MemorySetting::InternalMemory>>
CellStorageImpl(const partition::MultiLevelPartition &partition, const GraphT &base_graph)
{
// pre-allocate storge for CellData so we can have random access to it by cell id
@@ -315,7 +317,8 @@ template <osrm::storage::MemorySetting MemorySetting> class CellStorageImpl
weights.resize(weight_offset + 1, INVALID_EDGE_WEIGHT);
}
template <typename = std::enable_if<MemorySetting == osrm::storage::MemorySetting::SharedMemory>>
template <
typename = std::enable_if<MemorySetting == osrm::storage::MemorySetting::SharedMemory>>
CellStorageImpl(Vector<EdgeWeight> weights_,
Vector<NodeID> source_boundary_,
Vector<NodeID> destination_boundary_,
@@ -340,7 +343,9 @@ template <osrm::storage::MemorySetting MemorySetting> class CellStorageImpl
destination_boundary.empty() ? nullptr : destination_boundary.data()};
}
template <typename = std::enable_if<MemorySetting == osrm::storage::MemorySetting::InternalMemory>> Cell GetCell(LevelID level, CellID id)
template <
typename = std::enable_if<MemorySetting == osrm::storage::MemorySetting::InternalMemory>>
Cell GetCell(LevelID level, CellID id)
{
const auto level_index = LevelIDToIndex(level);
BOOST_ASSERT(level_index < level_to_cell_offset.size());
@@ -352,9 +357,9 @@ template <osrm::storage::MemorySetting MemorySetting> class CellStorageImpl
}
friend void io::read<MemorySetting>(const boost::filesystem::path &path,
detail::CellStorageImpl<MemorySetting> &storage);
detail::CellStorageImpl<MemorySetting> &storage);
friend void io::write<MemorySetting>(const boost::filesystem::path &path,
const detail::CellStorageImpl<MemorySetting> &storage);
const detail::CellStorageImpl<MemorySetting> &storage);
private:
Vector<EdgeWeight> weights;
+2 -2
View File
@@ -193,10 +193,10 @@ class MultiLevelGraph : public util::StaticGraph<EdgeDataT, MemorySetting>
friend void
io::read<EdgeDataT, MemorySetting>(const boost::filesystem::path &path,
MultiLevelGraph<EdgeDataT, MemorySetting> &graph);
MultiLevelGraph<EdgeDataT, MemorySetting> &graph);
friend void
io::write<EdgeDataT, MemorySetting>(const boost::filesystem::path &path,
const MultiLevelGraph<EdgeDataT, MemorySetting> &graph);
const MultiLevelGraph<EdgeDataT, MemorySetting> &graph);
Vector<EdgeOffset> node_to_edge_offset;
};
+11 -8
View File
@@ -28,14 +28,15 @@ namespace detail
{
template <osrm::storage::MemorySetting MemorySetting> class MultiLevelPartitionImpl;
}
using MultiLevelPartition = detail::MultiLevelPartitionImpl<osrm::storage::MemorySetting::InternalMemory>;
using MultiLevelPartitionView = detail::MultiLevelPartitionImpl<osrm::storage::MemorySetting::SharedMemory>;
using MultiLevelPartition =
detail::MultiLevelPartitionImpl<osrm::storage::MemorySetting::InternalMemory>;
using MultiLevelPartitionView =
detail::MultiLevelPartitionImpl<osrm::storage::MemorySetting::SharedMemory>;
namespace io
{
template <osrm::storage::MemorySetting MemorySetting>
void read(const boost::filesystem::path &file,
detail::MultiLevelPartitionImpl<MemorySetting> &mlp);
void read(const boost::filesystem::path &file, detail::MultiLevelPartitionImpl<MemorySetting> &mlp);
template <osrm::storage::MemorySetting MemorySetting>
void write(const boost::filesystem::path &file,
const detail::MultiLevelPartitionImpl<MemorySetting> &mlp);
@@ -69,7 +70,8 @@ template <osrm::storage::MemorySetting MemorySetting> class MultiLevelPartitionI
// cell_sizes is index by level (starting at 0, the base graph).
// However level 0 always needs to have cell size 1, since it is the
// basegraph.
template <typename = typename std::enable_if<MemorySetting == osrm::storage::MemorySetting::InternalMemory>>
template <typename = typename std::enable_if<MemorySetting ==
osrm::storage::MemorySetting::InternalMemory>>
MultiLevelPartitionImpl(const std::vector<std::vector<CellID>> &partitions,
const std::vector<std::uint32_t> &lidx_to_num_cells)
: level_data(MakeLevelData(lidx_to_num_cells))
@@ -77,7 +79,8 @@ template <osrm::storage::MemorySetting MemorySetting> class MultiLevelPartitionI
InitializePartitionIDs(partitions);
}
template <typename = typename std::enable_if<MemorySetting == osrm::storage::MemorySetting::SharedMemory>>
template <typename = typename std::enable_if<MemorySetting ==
osrm::storage::MemorySetting::SharedMemory>>
MultiLevelPartitionImpl(LevelData level_data,
Vector<PartitionID> partition_,
Vector<CellID> cell_to_children_)
@@ -136,9 +139,9 @@ template <osrm::storage::MemorySetting MemorySetting> class MultiLevelPartitionI
}
friend void io::read<MemorySetting>(const boost::filesystem::path &file,
MultiLevelPartitionImpl &mlp);
MultiLevelPartitionImpl &mlp);
friend void io::write<MemorySetting>(const boost::filesystem::path &file,
const MultiLevelPartitionImpl &mlp);
const MultiLevelPartitionImpl &mlp);
private:
auto MakeLevelData(const std::vector<std::uint32_t> &lidx_to_num_cells)
+2 -2
View File
@@ -32,8 +32,8 @@ namespace storage
enum class MemorySetting
{
SharedMemory,
InternalMemory
SharedMemory,
InternalMemory
};
struct OSRMLockFile
+3 -1
View File
@@ -22,7 +22,9 @@ namespace util
* NOTE: this type is templated for future use, but will require a slight refactor to
* configure BITSIZE and ELEMSIZE
*/
template <typename T, osrm::storage::MemorySetting MemorySetting = osrm::storage::MemorySetting::InternalMemory> class PackedVector
template <typename T,
osrm::storage::MemorySetting MemorySetting = osrm::storage::MemorySetting::InternalMemory>
class PackedVector
{
static const constexpr std::size_t BITSIZE = 33;
static const constexpr std::size_t ELEMSIZE = 64;
+5 -3
View File
@@ -2,8 +2,8 @@
#define RANGE_TABLE_HPP
#include "storage/io.hpp"
#include "util/integer_range.hpp"
#include "storage/shared_memory.hpp"
#include "util/integer_range.hpp"
#include "util/shared_memory_vector_wrapper.hpp"
#include <array>
@@ -19,7 +19,9 @@ namespace util
* and otherwise the compiler gets confused.
*/
template <unsigned BLOCK_SIZE = 16, osrm::storage::MemorySetting MemorySetting = osrm::storage::MemorySetting::InternalMemory> class RangeTable;
template <unsigned BLOCK_SIZE = 16,
osrm::storage::MemorySetting MemorySetting = osrm::storage::MemorySetting::InternalMemory>
class RangeTable;
template <unsigned BLOCK_SIZE, osrm::storage::MemorySetting MemorySetting>
std::ostream &operator<<(std::ostream &out, const RangeTable<BLOCK_SIZE, MemorySetting> &table);
@@ -215,7 +217,7 @@ template <unsigned BLOCK_SIZE, osrm::storage::MemorySetting MemorySetting> class
template <unsigned BLOCK_SIZE, osrm::storage::MemorySetting MemorySetting>
unsigned RangeTable<BLOCK_SIZE, MemorySetting>::PrefixSumAtIndex(int index,
const BlockT &block) const
const BlockT &block) const
{
// this loop looks inefficent, but a modern compiler
// will emit nice SIMD here, at least for sensible block sizes. (I checked.)
@@ -177,9 +177,10 @@ void swap(SharedMemoryWrapper<DataT> &lhs, SharedMemoryWrapper<DataT> &rhs) noex
template <typename DataT, osrm::storage::MemorySetting MemorySetting> struct ShM
{
using vector = typename std::conditional<MemorySetting == osrm::storage::MemorySetting::SharedMemory,
SharedMemoryWrapper<DataT>,
std::vector<DataT>>::type;
using vector =
typename std::conditional<MemorySetting == osrm::storage::MemorySetting::SharedMemory,
SharedMemoryWrapper<DataT>,
std::vector<DataT>>::type;
};
}
}
+3 -1
View File
@@ -99,7 +99,9 @@ EntryT edgeToEntry(const OtherEdge &from, std::false_type)
} // namespace static_graph_details
template <typename EdgeDataT, osrm::storage::MemorySetting MemorySetting = osrm::storage::MemorySetting::InternalMemory> class StaticGraph
template <typename EdgeDataT,
osrm::storage::MemorySetting MemorySetting = osrm::storage::MemorySetting::InternalMemory>
class StaticGraph
{
public:
using InputEdge = static_graph_details::SortableEdgeWithData<EdgeDataT>;