make first heaps algorithm-aware
This commit is contained in:
@@ -3,7 +3,7 @@
|
||||
|
||||
#include <boost/thread/tss.hpp>
|
||||
|
||||
#include "partition/multi_level_partition.hpp"
|
||||
#include "engine/algorithm.hpp"
|
||||
#include "util/binary_heap.hpp"
|
||||
#include "util/typedefs.hpp"
|
||||
|
||||
@@ -53,25 +53,50 @@ struct SearchEngineData
|
||||
|
||||
using MultiLayerDijkstraHeapPtr = boost::thread_specific_ptr<MultiLayerDijkstraHeap>;
|
||||
|
||||
private:
|
||||
static SearchEngineHeapPtr forward_heap_1;
|
||||
static SearchEngineHeapPtr reverse_heap_1;
|
||||
static MultiLayerDijkstraHeapPtr mld_forward_heap;
|
||||
static MultiLayerDijkstraHeapPtr mld_reverse_heap;
|
||||
|
||||
public:
|
||||
static SearchEngineHeapPtr forward_heap_2;
|
||||
static SearchEngineHeapPtr reverse_heap_2;
|
||||
static SearchEngineHeapPtr forward_heap_3;
|
||||
static SearchEngineHeapPtr reverse_heap_3;
|
||||
static ManyToManyHeapPtr many_to_many_heap;
|
||||
static MultiLayerDijkstraHeapPtr mld_forward_heap;
|
||||
static MultiLayerDijkstraHeapPtr mld_reverse_heap;
|
||||
|
||||
void InitializeOrClearFirstThreadLocalStorage(const unsigned number_of_nodes);
|
||||
template <typename Algorithm>
|
||||
void InitializeOrClearFirstThreadLocalStorage(Algorithm, const unsigned number_of_nodes);
|
||||
|
||||
template <typename Algorithm> auto GetForwardHeapPtr(Algorithm) const
|
||||
{
|
||||
return forward_heap_1.get();
|
||||
}
|
||||
|
||||
template <typename Algorithm> auto GetReverseHeapPtr(Algorithm) const
|
||||
{
|
||||
return reverse_heap_1.get();
|
||||
}
|
||||
|
||||
void InitializeOrClearFirstThreadLocalStorage(routing_algorithms::mld::Algorithm,
|
||||
const unsigned number_of_nodes);
|
||||
|
||||
auto GetForwardHeapPtr(routing_algorithms::mld::Algorithm) const
|
||||
{
|
||||
return mld_forward_heap.get();
|
||||
}
|
||||
|
||||
auto GetReverseHeapPtr(routing_algorithms::mld::Algorithm) const
|
||||
{
|
||||
return mld_reverse_heap.get();
|
||||
}
|
||||
|
||||
void InitializeOrClearSecondThreadLocalStorage(const unsigned number_of_nodes);
|
||||
|
||||
void InitializeOrClearThirdThreadLocalStorage(const unsigned number_of_nodes);
|
||||
|
||||
void InitializeOrClearManyToManyThreadLocalStorage(const unsigned number_of_nodes);
|
||||
|
||||
void InitializeOrClearMultiLayerDijkstraThreadLocalStorage(const unsigned number_of_nodes);
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user