blob: e46b64f33a99947b71a63f2ac3aa9265c53ffc2c (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
#pragma once
#include "routing/edge_estimator.hpp"
#include "routing/index_graph.hpp"
#include "routing/vehicle_mask.hpp"
#include "routing_common/num_mwm_id.hpp"
#include "routing_common/vehicle_model.hpp"
#include <memory>
class MwmValue;
class DataSourceBase;
namespace routing
{
class IndexGraphLoader
{
public:
virtual ~IndexGraphLoader() = default;
virtual Geometry & GetGeometry(NumMwmId numMwmId) = 0;
virtual IndexGraph & GetIndexGraph(NumMwmId mwmId) = 0;
virtual void Clear() = 0;
static std::unique_ptr<IndexGraphLoader> Create(
VehicleType vehicleType, bool loadAltitudes, std::shared_ptr<NumMwmIds> numMwmIds,
std::shared_ptr<VehicleModelFactoryInterface> vehicleModelFactory,
std::shared_ptr<EdgeEstimator> estimator, DataSourceBase & dataSource);
};
void DeserializeIndexGraph(MwmValue const & mwmValue, VehicleType vehicleType, IndexGraph & graph);
} // namespace routing
|