/srv/osrm/osrm-backend/include/engine
NameSizeModeActions
api/-0755rm
datafacade/-0755rm
guidance/-0755rm
map_matching/-0755rm
plugins/-0755rm
routing_algorithms/-0755rm
trip/-0755rm
algorithm.hpp29740644editdlrm
approach.hpp15300644editdlrm
base64.hpp46000644editdlrm
bearing.hpp18060644editdlrm
datafacade.hpp4080644editdlrm
datafacade_factory.hpp54490644editdlrm
datafacade_provider.hpp34680644editdlrm
data_watchdog.hpp61400644editdlrm
douglas_peucker.hpp26060644editdlrm
engine.hpp54530644editdlrm
engine_config.hpp32140644editdlrm
geospatial_query.hpp273930644editdlrm
hint.hpp29420644editdlrm
internal_route_result.hpp60200644editdlrm
phantom_node.hpp109380644editdlrm
polyline_compressor.hpp28750644editdlrm
routing_algorithms.hpp93990644editdlrm
search_engine_data.hpp43800644editdlrm
status.hpp15340644editdlrm
Edit: /srv/osrm/osrm-backend/include/engine/datafacade_provider.hpp (3468B)
#ifndef OSRM_ENGINE_DATAFACADE_PROVIDER_HPP #define OSRM_ENGINE_DATAFACADE_PROVIDER_HPP #include "engine/data_watchdog.hpp" #include "engine/datafacade.hpp" #include "engine/datafacade/contiguous_internalmem_datafacade.hpp" #include "engine/datafacade/mmap_memory_allocator.hpp" #include "engine/datafacade/process_memory_allocator.hpp" #include "engine/datafacade_factory.hpp" namespace osrm::engine { namespace detail { template class FacadeT> class DataFacadeProvider { public: using Facade = FacadeT; virtual ~DataFacadeProvider() = default; virtual std::shared_ptr Get(const api::BaseParameters &) const = 0; virtual std::shared_ptr Get(const api::TileParameters &) const = 0; }; template class FacadeT> class ExternalProvider final : public DataFacadeProvider { public: using Facade = typename DataFacadeProvider::Facade; ExternalProvider(const storage::StorageConfig &config) : facade_factory(std::make_shared(config)) { } std::shared_ptr Get(const api::TileParameters ¶ms) const override final { return facade_factory.Get(params); } std::shared_ptr Get(const api::BaseParameters ¶ms) const override final { return facade_factory.Get(params); } private: DataFacadeFactory facade_factory; }; template class FacadeT> class ImmutableProvider final : public DataFacadeProvider { public: using Facade = typename DataFacadeProvider::Facade; ImmutableProvider(const storage::StorageConfig &config) : facade_factory(std::make_shared(config)) { } std::shared_ptr Get(const api::TileParameters ¶ms) const override final { return facade_factory.Get(params); } std::shared_ptr Get(const api::BaseParameters ¶ms) const override final { return facade_factory.Get(params); } private: DataFacadeFactory facade_factory; }; template class FacadeT> class WatchingProvider : public DataFacadeProvider { DataWatchdog watchdog; public: using Facade = typename DataFacadeProvider::Facade; WatchingProvider(const std::string &dataset_name) : watchdog(dataset_name) {} std::shared_ptr Get(const api::TileParameters ¶ms) const override final { return watchdog.Get(params); } std::shared_ptr Get(const api::BaseParameters ¶ms) const override final { return watchdog.Get(params); } }; } // namespace detail template using DataFacadeProvider = detail::DataFacadeProvider; template using WatchingProvider = detail::WatchingProvider; template using ImmutableProvider = detail::ImmutableProvider; template using ExternalProvider = detail::ExternalProvider; } // namespace osrm::engine #endif