diff --git a/map/framework.cpp b/map/framework.cpp index 0f2a65187..06b83b3c8 100644 --- a/map/framework.cpp +++ b/map/framework.cpp @@ -295,7 +295,8 @@ Framework::Framework(FrameworkParams const & params, bool loadMaps) [this]() -> StringsBundle const & { return m_stringsBundle; }, [this]() -> power_management::PowerManager const & { return m_powerManager; }), static_cast(*this)) - , m_trafficManager([this](string const & id) -> string { return m_storage.GetParentIdFor(id); }, + , m_trafficManager(m_featuresFetcher.GetDataSource(), + [this](string const & id) -> string { return m_storage.GetParentIdFor(id); }, bind(&Framework::GetMwmsByRect, this, _1, false /* rough */), kMaxTrafficCacheSizeBytes, m_routingManager.RoutingSession()) , m_lastReportedCountry(kInvalidCountryId) diff --git a/map/traffic_manager.cpp b/map/traffic_manager.cpp index 4495468fe..00dae2ec4 100644 --- a/map/traffic_manager.cpp +++ b/map/traffic_manager.cpp @@ -51,10 +51,12 @@ TrafficManager::CacheEntry::CacheEntry(time_point const & requestT , m_lastAvailability(traffic::TrafficInfo::Availability::Unknown) {} -TrafficManager::TrafficManager(const CountryParentNameGetterFn &countryParentNameGetter, +TrafficManager::TrafficManager(DataSource & dataSource, + const CountryParentNameGetterFn &countryParentNameGetter, GetMwmsByRectFn const & getMwmsByRectFn, size_t maxCacheSizeBytes, traffic::TrafficObserver & observer) - : m_countryParentNameGetterFn(countryParentNameGetter) + : m_dataSource(dataSource) + , m_countryParentNameGetterFn(countryParentNameGetter) , m_getMwmsByRectFn(getMwmsByRectFn) , m_observer(observer) , m_currentDataVersion(0) diff --git a/map/traffic_manager.hpp b/map/traffic_manager.hpp index 9f6f9a2e2..c52f1172d 100644 --- a/map/traffic_manager.hpp +++ b/map/traffic_manager.hpp @@ -7,6 +7,7 @@ #include "drape/pointers.hpp" +#include "indexer/data_source.hpp" #include "indexer/mwm_set.hpp" #include "openlr/openlr_decoder.hpp" @@ -75,7 +76,8 @@ public: using TrafficStateChangedFn = std::function; using GetMwmsByRectFn = std::function(m2::RectD const &)>; - TrafficManager(CountryParentNameGetterFn const & countryParentNameGetter, + TrafficManager(DataSource & dataSource, + CountryParentNameGetterFn const & countryParentNameGetter, GetMwmsByRectFn const & getMwmsByRectFn, size_t maxCacheSizeBytes, traffic::TrafficObserver & observer); ~TrafficManager(); @@ -402,6 +404,7 @@ private: std::for_each(activeMwms.begin(), activeMwms.end(), std::forward(f)); } + DataSource & m_dataSource; CountryParentNameGetterFn m_countryParentNameGetterFn; GetMwmsByRectFn m_getMwmsByRectFn; traffic::TrafficObserver & m_observer;