implement GetName() for shared memory (copy&paste)
This commit is contained in:
parent
581c9c570b
commit
71fe8ed80d
@ -55,8 +55,8 @@ private:
|
|||||||
ShM<NodeID, true>::vector m_via_node_list;
|
ShM<NodeID, true>::vector m_via_node_list;
|
||||||
ShM<unsigned, true>::vector m_name_ID_list;
|
ShM<unsigned, true>::vector m_name_ID_list;
|
||||||
ShM<TurnInstruction, true>::vector m_turn_instruction_list;
|
ShM<TurnInstruction, true>::vector m_turn_instruction_list;
|
||||||
ShM<char, false>::vector m_names_char_list;
|
ShM<char, true>::vector m_names_char_list;
|
||||||
ShM<unsigned, false>::vector m_name_begin_indices;
|
ShM<unsigned, true>::vector m_name_begin_indices;
|
||||||
StaticRTree<RTreeLeaf, true> * m_static_rtree;
|
StaticRTree<RTreeLeaf, true> * m_static_rtree;
|
||||||
|
|
||||||
SharedDataFacade() { }
|
SharedDataFacade() { }
|
||||||
@ -88,13 +88,13 @@ private:
|
|||||||
}
|
}
|
||||||
|
|
||||||
void LoadGraph() {
|
void LoadGraph() {
|
||||||
m_number_of_nodes = *static_cast<unsigned *>(
|
m_number_of_nodes = *static_cast<uint32_t *>(
|
||||||
SharedMemoryFactory::Get(GRAPH_NODE_LIST_SIZE)->Ptr()
|
SharedMemoryFactory::Get(GRAPH_NODE_LIST_SIZE)->Ptr()
|
||||||
);
|
);
|
||||||
SharedMemory * graph_nodes = SharedMemoryFactory::Get(GRAPH_NODE_LIST);
|
SharedMemory * graph_nodes = SharedMemoryFactory::Get(GRAPH_NODE_LIST);
|
||||||
GraphNode * graph_nodes_ptr = static_cast<GraphNode *>( graph_nodes->Ptr() );
|
GraphNode * graph_nodes_ptr = static_cast<GraphNode *>( graph_nodes->Ptr() );
|
||||||
|
|
||||||
uint32_t number_of_edges = *static_cast<unsigned *>(
|
uint32_t number_of_edges = *static_cast<uint32_t *>(
|
||||||
SharedMemoryFactory::Get(GRAPH_EDGE_LIST_SIZE)->Ptr()
|
SharedMemoryFactory::Get(GRAPH_EDGE_LIST_SIZE)->Ptr()
|
||||||
);
|
);
|
||||||
SharedMemory * graph_edges = SharedMemoryFactory::Get(GRAPH_EDGE_LIST);
|
SharedMemory * graph_edges = SharedMemoryFactory::Get(GRAPH_EDGE_LIST);
|
||||||
@ -110,7 +110,7 @@ private:
|
|||||||
}
|
}
|
||||||
|
|
||||||
void LoadNodeAndEdgeInformation() {
|
void LoadNodeAndEdgeInformation() {
|
||||||
uint32_t number_of_coordinates = *static_cast<unsigned *>(
|
uint32_t number_of_coordinates = *static_cast<uint32_t *>(
|
||||||
SharedMemoryFactory::Get(COORDINATE_LIST_SIZE)->Ptr()
|
SharedMemoryFactory::Get(COORDINATE_LIST_SIZE)->Ptr()
|
||||||
);
|
);
|
||||||
FixedPointCoordinate * coordinate_list_ptr = static_cast<FixedPointCoordinate *>(
|
FixedPointCoordinate * coordinate_list_ptr = static_cast<FixedPointCoordinate *>(
|
||||||
@ -122,7 +122,7 @@ private:
|
|||||||
);
|
);
|
||||||
m_coordinate_list.swap( coordinate_list );
|
m_coordinate_list.swap( coordinate_list );
|
||||||
|
|
||||||
uint32_t number_of_turn_instructions = *static_cast<unsigned *>(
|
uint32_t number_of_turn_instructions = *static_cast<uint32_t *>(
|
||||||
SharedMemoryFactory::Get(TURN_INSTRUCTION_LIST_SIZE)->Ptr()
|
SharedMemoryFactory::Get(TURN_INSTRUCTION_LIST_SIZE)->Ptr()
|
||||||
);
|
);
|
||||||
|
|
||||||
@ -139,7 +139,7 @@ private:
|
|||||||
}
|
}
|
||||||
|
|
||||||
void LoadViaNodeList() {
|
void LoadViaNodeList() {
|
||||||
uint32_t number_of_via_nodes = * static_cast<unsigned *> (
|
uint32_t number_of_via_nodes = * static_cast<uint32_t *> (
|
||||||
SharedMemoryFactory::Get(VIA_NODE_LIST_SIZE)->Ptr()
|
SharedMemoryFactory::Get(VIA_NODE_LIST_SIZE)->Ptr()
|
||||||
);
|
);
|
||||||
NodeID * via_node_list_ptr = static_cast<NodeID *>(
|
NodeID * via_node_list_ptr = static_cast<NodeID *>(
|
||||||
@ -153,7 +153,29 @@ private:
|
|||||||
}
|
}
|
||||||
|
|
||||||
void LoadNames() {
|
void LoadNames() {
|
||||||
|
uint32_t street_names_index_size = * static_cast<uint32_t *> (
|
||||||
|
SharedMemoryFactory::Get(NAME_INDEX_SIZE)->Ptr()
|
||||||
|
);
|
||||||
|
unsigned * street_names_index_ptr = static_cast<unsigned *>(
|
||||||
|
SharedMemoryFactory::Get(NAMES_INDEX)->Ptr()
|
||||||
|
);
|
||||||
|
typename ShM<unsigned, true>::vector name_begin_indices(
|
||||||
|
street_names_index_ptr,
|
||||||
|
street_names_index_size
|
||||||
|
);
|
||||||
|
m_name_begin_indices.swap(m_name_begin_indices);
|
||||||
|
|
||||||
|
uint32_t names_list_size = * static_cast<uint32_t *>(
|
||||||
|
SharedMemoryFactory::Get(NAMES_LIST_SIZE)->Ptr()
|
||||||
|
);
|
||||||
|
char * names_list_ptr = static_cast<char *>(
|
||||||
|
SharedMemoryFactory::Get(NAMES_LIST)->Ptr()
|
||||||
|
);
|
||||||
|
typename ShM<char, true>::vector names_char_list(
|
||||||
|
names_list_ptr,
|
||||||
|
names_list_size
|
||||||
|
);
|
||||||
|
m_names_char_list.swap(names_char_list);
|
||||||
}
|
}
|
||||||
|
|
||||||
public:
|
public:
|
||||||
@ -276,10 +298,35 @@ public:
|
|||||||
|
|
||||||
unsigned GetNameIndexFromEdgeID(const unsigned id) const { return 0; };
|
unsigned GetNameIndexFromEdgeID(const unsigned id) const { return 0; };
|
||||||
|
|
||||||
void GetName(
|
void GetName( const unsigned name_id, std::string & result ) const {
|
||||||
const unsigned name_id,
|
if(UINT_MAX == name_id) {
|
||||||
std::string & result
|
result = "";
|
||||||
) const { return; };
|
return;
|
||||||
|
}
|
||||||
|
BOOST_ASSERT_MSG(
|
||||||
|
name_id < m_name_begin_indices.size(),
|
||||||
|
"name id too high"
|
||||||
|
);
|
||||||
|
unsigned begin_index = m_name_begin_indices[name_id];
|
||||||
|
unsigned end_index = m_name_begin_indices[name_id+1];
|
||||||
|
BOOST_ASSERT_MSG(
|
||||||
|
begin_index < m_names_char_list.size(),
|
||||||
|
"begin index of name too high"
|
||||||
|
);
|
||||||
|
BOOST_ASSERT_MSG(
|
||||||
|
end_index < m_names_char_list.size(),
|
||||||
|
"end index of name too high"
|
||||||
|
);
|
||||||
|
|
||||||
|
BOOST_ASSERT_MSG(begin_index <= end_index, "string ends before begin");
|
||||||
|
result.clear();
|
||||||
|
result.resize(end_index - begin_index);
|
||||||
|
std::copy(
|
||||||
|
m_names_char_list.begin() + begin_index,
|
||||||
|
m_names_char_list.begin() + end_index,
|
||||||
|
result.begin()
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
std::string GetTimestamp() const {
|
std::string GetTimestamp() const {
|
||||||
return m_timestamp;
|
return m_timestamp;
|
||||||
|
Loading…
Reference in New Issue
Block a user