partial implementation of new datastore functions
This commit is contained in:
@@ -80,9 +80,9 @@ private:
|
||||
ShM<TurnInstruction, true>::vector m_turn_instruction_list;
|
||||
ShM<char, true>::vector m_names_char_list;
|
||||
ShM<unsigned, true>::vector m_name_begin_indices;
|
||||
ShM<bool, true>::vector m_egde_is_compressed;
|
||||
ShM<unsigned, true>::vector m_geometry_indices;
|
||||
ShM<unsigned, true>::vector m_geometry_list;
|
||||
ShM<bool, true>::vector m_egde_is_compressed;
|
||||
ShM<unsigned, true>::vector m_geometry_indices;
|
||||
ShM<unsigned, true>::vector m_geometry_list;
|
||||
|
||||
boost::shared_ptr<
|
||||
StaticRTree<
|
||||
@@ -209,10 +209,18 @@ private:
|
||||
|
||||
void LoadGeometries()
|
||||
{
|
||||
unsigned * geometries_compressed_ptr = (unsigned *)(
|
||||
shared_memory + data_layout->GetGeometriesCompressedOffset()
|
||||
);
|
||||
typename ShM<bool, true>::vector egde_is_compressed(
|
||||
geometries_compressed_ptr,
|
||||
data_layout->geometries_index_list_size
|
||||
);
|
||||
m_egde_is_compressed.swap(egde_is_compressed);
|
||||
|
||||
unsigned * geometries_index_ptr = (unsigned *)(
|
||||
shared_memory + data_layout->GetGeometriesIndicesOffset()
|
||||
);
|
||||
|
||||
typename ShM<unsigned, true>::vector geometry_begin_indices(
|
||||
geometries_index_ptr,
|
||||
data_layout->geometries_index_list_size
|
||||
|
||||
@@ -58,6 +58,7 @@ struct SharedDataLayout {
|
||||
uint64_t r_search_tree_size;
|
||||
uint64_t geometries_index_list_size;
|
||||
uint64_t geometries_list_size;
|
||||
uint64_t geometries_compression;
|
||||
|
||||
unsigned checksum;
|
||||
unsigned timestamp_length;
|
||||
@@ -76,6 +77,7 @@ struct SharedDataLayout {
|
||||
r_search_tree_size(0),
|
||||
geometries_index_list_size(0),
|
||||
geometries_list_size(0),
|
||||
geometries_compression(0),
|
||||
checksum(0),
|
||||
timestamp_length(0)
|
||||
|
||||
@@ -95,6 +97,7 @@ struct SharedDataLayout {
|
||||
SimpleLogger().Write(logDEBUG) << "coordinate_list_size: " << coordinate_list_size;
|
||||
SimpleLogger().Write(logDEBUG) << "turn_instruction_list_size: " << turn_instruction_list_size;
|
||||
SimpleLogger().Write(logDEBUG) << "r_search_tree_size: " << r_search_tree_size;
|
||||
SimpleLogger().Write(logDEBUG) << "geometries_compression: " << geometries_compression;
|
||||
SimpleLogger().Write(logDEBUG) << "geometries_index_list_size: " << geometries_index_list_size;
|
||||
SimpleLogger().Write(logDEBUG) << "geometry_list_size: " << geometries_list_size;
|
||||
SimpleLogger().Write(logDEBUG) << "sizeof(checksum): " << sizeof(checksum);
|
||||
@@ -218,6 +221,24 @@ struct SharedDataLayout {
|
||||
(r_search_tree_size * sizeof(RTreeNode) );
|
||||
return result;
|
||||
}
|
||||
|
||||
uint64_t GetGeometriesCompressedOffset() const
|
||||
{
|
||||
uint64_t result =
|
||||
(name_index_list_size * sizeof(unsigned) ) +
|
||||
(name_char_list_size * sizeof(char) ) +
|
||||
(name_id_list_size * sizeof(unsigned) ) +
|
||||
(via_node_list_size * sizeof(NodeID) ) +
|
||||
(graph_node_list_size * sizeof(QueryGraph::_StrNode) ) +
|
||||
(graph_edge_list_size * sizeof(QueryGraph::_StrEdge) ) +
|
||||
(timestamp_length * sizeof(char) ) +
|
||||
(coordinate_list_size * sizeof(FixedPointCoordinate) ) +
|
||||
(turn_instruction_list_size * sizeof(TurnInstructionsClass)) +
|
||||
(r_search_tree_size * sizeof(RTreeNode) ) +
|
||||
(geometries_compression/32) + 1;
|
||||
return result;
|
||||
}
|
||||
|
||||
uint64_t GetGeometryListOffset() const {
|
||||
uint64_t result =
|
||||
(name_index_list_size * sizeof(unsigned) ) +
|
||||
@@ -230,6 +251,7 @@ struct SharedDataLayout {
|
||||
(coordinate_list_size * sizeof(FixedPointCoordinate) ) +
|
||||
(turn_instruction_list_size * sizeof(TurnInstructionsClass)) +
|
||||
(r_search_tree_size * sizeof(RTreeNode) ) +
|
||||
(geometries_compression/32) + 1 +
|
||||
(geometries_index_list_size * sizeof(unsigned) );
|
||||
return result;
|
||||
}
|
||||
@@ -245,6 +267,7 @@ struct SharedDataLayout {
|
||||
(coordinate_list_size * sizeof(FixedPointCoordinate) ) +
|
||||
(turn_instruction_list_size * sizeof(TurnInstructionsClass)) +
|
||||
(r_search_tree_size * sizeof(RTreeNode) ) +
|
||||
(geometries_compression/32) + 1 +
|
||||
(geometries_index_list_size * sizeof(unsigned) ) +
|
||||
(geometries_list_size * sizeof(unsigned) );
|
||||
return result;
|
||||
|
||||
Reference in New Issue
Block a user