diff --git a/DataStructures/ExternalMemoryNode.cpp b/DataStructures/ExternalMemoryNode.cpp index 866304864..ecdbd9d91 100644 --- a/DataStructures/ExternalMemoryNode.cpp +++ b/DataStructures/ExternalMemoryNode.cpp @@ -52,3 +52,10 @@ ExternalMemoryNode ExternalMemoryNode::max_value() false, false); } + +bool ExternalMemoryNodeSTXXLCompare::operator()(const ExternalMemoryNode &left, const ExternalMemoryNode &right) const +{ + return left.node_id < right.node_id; +} +ExternalMemoryNodeSTXXLCompare::value_type ExternalMemoryNodeSTXXLCompare::max_value() { return ExternalMemoryNode::max_value(); } +ExternalMemoryNodeSTXXLCompare::value_type ExternalMemoryNodeSTXXLCompare::min_value() { return ExternalMemoryNode::min_value(); } diff --git a/DataStructures/ExternalMemoryNode.h b/DataStructures/ExternalMemoryNode.h index 88c4187ce..90ce532a6 100644 --- a/DataStructures/ExternalMemoryNode.h +++ b/DataStructures/ExternalMemoryNode.h @@ -25,8 +25,8 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#ifndef IMPORTNODE_H_ -#define IMPORTNODE_H_ +#ifndef EXTERNAL_MEMORY_NODE_H__ +#define EXTERNAL_MEMORY_NODE_H__ #include "QueryNode.h" @@ -34,7 +34,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. struct ExternalMemoryNode : NodeInfo { - ExternalMemoryNode(int lat, int lon, unsigned int id, bool bollard, bool traffic_light); + ExternalMemoryNode(int lat, int lon, NodeID id, bool bollard, bool traffic_light); ExternalMemoryNode(); @@ -46,4 +46,12 @@ struct ExternalMemoryNode : NodeInfo bool trafficLight; }; -#endif /* IMPORTNODE_H_ */ +struct ExternalMemoryNodeSTXXLCompare +{ + using value_type = ExternalMemoryNode; + bool operator()(const ExternalMemoryNode &left, const ExternalMemoryNode &right) const; + value_type max_value(); + value_type min_value(); +}; + +#endif /* EXTERNAL_MEMORY_NODE_H__ */ diff --git a/Extractor/ExtractionContainers.cpp b/Extractor/ExtractionContainers.cpp index 3b39e3476..92cfcd1d6 100644 --- a/Extractor/ExtractionContainers.cpp +++ b/Extractor/ExtractionContainers.cpp @@ -82,7 +82,10 @@ void ExtractionContainers::PrepareData(const std::string &output_file_name, std::cout << "[extractor] Sorting all nodes ... " << std::flush; TIMER_START(sorting_nodes); - stxxl::sort(all_nodes_list.begin(), all_nodes_list.end(), CmpNodeByID(), stxxl_memory); + stxxl::sort(all_nodes_list.begin(), + all_nodes_list.end(), + ExternalMemoryNodeSTXXLCompare(), + stxxl_memory); TIMER_STOP(sorting_nodes); std::cout << "ok, after " << TIMER_SEC(sorting_nodes) << "s" << std::endl; diff --git a/Extractor/ExtractionContainers.h b/Extractor/ExtractionContainers.h index bfb318ba7..377f2d2cf 100644 --- a/Extractor/ExtractionContainers.h +++ b/Extractor/ExtractionContainers.h @@ -30,6 +30,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include "InternalExtractorEdge.h" #include "ExtractorStructs.h" +#include "../DataStructures/ExternalMemoryNode.h" #include "../DataStructures/Restriction.h" #include "../Util/FingerPrint.h" diff --git a/Extractor/ExtractorStructs.h b/Extractor/ExtractorStructs.h index f2b4e4860..2f68b6e31 100644 --- a/Extractor/ExtractorStructs.h +++ b/Extractor/ExtractorStructs.h @@ -89,15 +89,4 @@ struct Cmp value_type min_value() { return 0x0; } }; -struct CmpNodeByID -{ - using value_type = ExternalMemoryNode; - bool operator()(const ExternalMemoryNode &left, const ExternalMemoryNode &right) const - { - return left.node_id < right.node_id; - } - value_type max_value() { return ExternalMemoryNode::max_value(); } - value_type min_value() { return ExternalMemoryNode::min_value(); } -}; - #endif /* EXTRACTORSTRUCTS_H_ */