implement loading of compressed geometries

This commit is contained in:
Dennis Luxen
2014-04-17 16:59:08 +02:00
parent 7a6a5f6612
commit 9b3dab8055
5 changed files with 75 additions and 22 deletions
+2 -2
View File
@@ -210,7 +210,7 @@ private:
void LoadGeometries()
{
unsigned * geometries_compressed_ptr = (unsigned *)(
shared_memory + data_layout->GetGeometriesCompressedOffset()
shared_memory + data_layout->GetGeometriesIndexListOffset()
);
typename ShM<bool, true>::vector egde_is_compressed(
geometries_compressed_ptr,
@@ -219,7 +219,7 @@ private:
m_egde_is_compressed.swap(egde_is_compressed);
unsigned * geometries_index_ptr = (unsigned *)(
shared_memory + data_layout->GetGeometriesIndicesOffset()
shared_memory + data_layout->GetGeometriesIndicatorOffset()
);
typename ShM<unsigned, true>::vector geometry_begin_indices(
geometries_index_ptr,
+15 -6
View File
@@ -116,11 +116,12 @@ struct SharedDataLayout {
(coordinate_list_size * sizeof(FixedPointCoordinate) ) +
(turn_instruction_list_size * sizeof(TurnInstructionsClass)) +
(r_search_tree_size * sizeof(RTreeNode) ) +
(geometries_compression/32) + 1 +
(geometries_compression/32 + 1) * sizeof(unsigned) +
(geometries_index_list_size * sizeof(unsigned) ) +
(geometries_list_size * sizeof(unsigned) ) +
sizeof(checksum) +
1024*sizeof(char);
PrintInformation();
return result;
}
@@ -170,6 +171,7 @@ struct SharedDataLayout {
(via_node_list_size * sizeof(NodeID) ) +
(graph_node_list_size * sizeof(QueryGraph::_StrNode)) +
(graph_edge_list_size * sizeof(QueryGraph::_StrEdge));
SimpleLogger().Write(logDEBUG) << "GetTimeStampOffset: " << result;
return result;
}
uint64_t GetCoordinateListOffset() const {
@@ -181,6 +183,7 @@ struct SharedDataLayout {
(graph_node_list_size * sizeof(QueryGraph::_StrNode)) +
(graph_edge_list_size * sizeof(QueryGraph::_StrEdge)) +
(timestamp_length * sizeof(char) );
SimpleLogger().Write(logDEBUG) << "GetCoordinateListOffset: " << result;
return result;
}
uint64_t GetTurnInstructionListOffset() const {
@@ -193,6 +196,7 @@ struct SharedDataLayout {
(graph_edge_list_size * sizeof(QueryGraph::_StrEdge)) +
(timestamp_length * sizeof(char) ) +
(coordinate_list_size * sizeof(FixedPointCoordinate));
SimpleLogger().Write(logDEBUG) << "GetTurnInstructionListOffset: " << result;
return result;
}
uint64_t GetRSearchTreeOffset() const {
@@ -206,9 +210,10 @@ struct SharedDataLayout {
(timestamp_length * sizeof(char) ) +
(coordinate_list_size * sizeof(FixedPointCoordinate) ) +
(turn_instruction_list_size * sizeof(TurnInstructionsClass));
SimpleLogger().Write(logDEBUG) << "GetRSearchTreeOffset: " << result;
return result;
}
uint64_t GetGeometriesIndicesOffset() const {
uint64_t GetGeometriesIndicatorOffset() const {
uint64_t result =
(name_index_list_size * sizeof(unsigned) ) +
(name_char_list_size * sizeof(char) ) +
@@ -220,10 +225,11 @@ struct SharedDataLayout {
(coordinate_list_size * sizeof(FixedPointCoordinate) ) +
(turn_instruction_list_size * sizeof(TurnInstructionsClass)) +
(r_search_tree_size * sizeof(RTreeNode) );
SimpleLogger().Write(logDEBUG) << "GetGeometriesIndicatorOffset: " << result;
return result;
}
uint64_t GetGeometriesCompressedOffset() const
uint64_t GetGeometriesIndexListOffset() const
{
uint64_t result =
(name_index_list_size * sizeof(unsigned) ) +
@@ -236,7 +242,8 @@ struct SharedDataLayout {
(coordinate_list_size * sizeof(FixedPointCoordinate) ) +
(turn_instruction_list_size * sizeof(TurnInstructionsClass)) +
(r_search_tree_size * sizeof(RTreeNode) ) +
(geometries_compression/32) + 1;
(geometries_compression/32 + 1) * sizeof(unsigned);
SimpleLogger().Write(logDEBUG) << "GetGeometriesCompressedOffset: " << result;
return result;
}
@@ -252,8 +259,9 @@ struct SharedDataLayout {
(coordinate_list_size * sizeof(FixedPointCoordinate) ) +
(turn_instruction_list_size * sizeof(TurnInstructionsClass)) +
(r_search_tree_size * sizeof(RTreeNode) ) +
(geometries_compression/32) + 1 +
(geometries_compression/32 + 1) * sizeof(unsigned) +
(geometries_index_list_size * sizeof(unsigned) );
SimpleLogger().Write(logDEBUG) << "GetGeometryListOffset: " << result;
return result;
}
uint64_t GetChecksumOffset() const {
@@ -268,9 +276,10 @@ struct SharedDataLayout {
(coordinate_list_size * sizeof(FixedPointCoordinate) ) +
(turn_instruction_list_size * sizeof(TurnInstructionsClass)) +
(r_search_tree_size * sizeof(RTreeNode) ) +
(geometries_compression/32) + 1 +
(geometries_compression/32 + 1) * sizeof(unsigned) +
(geometries_index_list_size * sizeof(unsigned) ) +
(geometries_list_size * sizeof(unsigned) );
SimpleLogger().Write(logDEBUG) << "GetChecksumOffset: " << result;
return result;
}
};