2018-02-01 10:47:43 -05:00
|
|
|
#ifndef OSRM_PARTITIONER_EDGE_BASED_GRAPH_HPP
|
|
|
|
#define OSRM_PARTITIONER_EDGE_BASED_GRAPH_HPP
|
2017-03-10 17:35:46 -05:00
|
|
|
|
|
|
|
#include "extractor/edge_based_edge.hpp"
|
|
|
|
#include "storage/io.hpp"
|
|
|
|
#include "util/coordinate.hpp"
|
|
|
|
#include "util/dynamic_graph.hpp"
|
|
|
|
#include "util/typedefs.hpp"
|
|
|
|
|
|
|
|
#include <cstdint>
|
|
|
|
|
|
|
|
#include <algorithm>
|
|
|
|
#include <iterator>
|
|
|
|
#include <memory>
|
|
|
|
#include <vector>
|
|
|
|
|
|
|
|
namespace osrm
|
|
|
|
{
|
2018-02-01 10:47:43 -05:00
|
|
|
namespace partitioner
|
2017-03-10 17:35:46 -05:00
|
|
|
{
|
|
|
|
|
|
|
|
struct EdgeBasedGraphEdgeData : extractor::EdgeBasedEdge::EdgeData
|
|
|
|
{
|
2017-05-19 18:28:01 -04:00
|
|
|
using Base = extractor::EdgeBasedEdge::EdgeData;
|
|
|
|
using Base::Base;
|
2017-03-10 17:35:46 -05:00
|
|
|
|
2017-05-19 18:28:01 -04:00
|
|
|
EdgeBasedGraphEdgeData(const EdgeBasedGraphEdgeData &) = default;
|
|
|
|
EdgeBasedGraphEdgeData(EdgeBasedGraphEdgeData &&) = default;
|
|
|
|
EdgeBasedGraphEdgeData &operator=(const EdgeBasedGraphEdgeData &) = default;
|
|
|
|
EdgeBasedGraphEdgeData &operator=(EdgeBasedGraphEdgeData &&) = default;
|
|
|
|
EdgeBasedGraphEdgeData(const Base &base) : Base(base) {}
|
|
|
|
EdgeBasedGraphEdgeData() : Base() {}
|
2017-03-10 17:35:46 -05:00
|
|
|
};
|
|
|
|
|
|
|
|
struct DynamicEdgeBasedGraph : util::DynamicGraph<EdgeBasedGraphEdgeData>
|
|
|
|
{
|
|
|
|
using Base = util::DynamicGraph<EdgeBasedGraphEdgeData>;
|
|
|
|
using Base::Base;
|
2018-02-01 10:00:15 -05:00
|
|
|
|
|
|
|
template <class ContainerT>
|
|
|
|
DynamicEdgeBasedGraph(const NodeIterator nodes,
|
|
|
|
const ContainerT &graph,
|
|
|
|
std::uint32_t connectivity_checksum)
|
|
|
|
: Base(nodes, graph), connectivity_checksum(connectivity_checksum)
|
|
|
|
{
|
|
|
|
}
|
|
|
|
|
|
|
|
std::uint32_t connectivity_checksum;
|
2017-03-10 17:35:46 -05:00
|
|
|
};
|
|
|
|
|
|
|
|
struct DynamicEdgeBasedGraphEdge : DynamicEdgeBasedGraph::InputEdge
|
|
|
|
{
|
|
|
|
using Base = DynamicEdgeBasedGraph::InputEdge;
|
|
|
|
using Base::Base;
|
|
|
|
};
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
#endif
|