MCPcopy Create free account
hub / github.com/comaps/comaps / OnTrafficDataResponse

Method OnTrafficDataResponse

libs/map/traffic_manager.cpp:352–386  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

350}
351
352void TrafficManager::OnTrafficDataResponse(traffic::TrafficInfo && info)
353{
354 {
355 std::lock_guard<std::mutex> lock(m_mutex);
356
357 auto it = m_mwmCache.find(info.GetMwmId());
358 if (it == m_mwmCache.end())
359 return;
360
361 it->second.m_isLoaded = true;
362 it->second.m_lastResponseTime = steady_clock::now();
363 it->second.m_isWaitingForResponse = false;
364 it->second.m_lastAvailability = info.GetAvailability();
365
366 if (!info.GetColoring().empty())
367 {
368 // Update cache.
369 size_t constexpr kElementSize = sizeof(traffic::TrafficInfo::RoadSegmentId) + sizeof(traffic::SpeedGroup);
370 size_t const dataSize = info.GetColoring().size() * kElementSize;
371 m_currentCacheSizeBytes += (dataSize - it->second.m_dataSize);
372 it->second.m_dataSize = dataSize;
373 ShrinkCacheToAllowableSize();
374 }
375
376 UpdateState();
377 }
378
379 if (!info.GetColoring().empty())
380 {
381 m_drapeEngine.SafeCall(&df::DrapeEngine::UpdateTraffic, static_cast<traffic::TrafficInfo const &>(info));
382
383 // Update traffic colors for routing.
384 m_observer.OnTrafficInfoAdded(std::move(info));
385 }
386}
387
388void TrafficManager::UniteActiveMwms(std::set<MwmSet::MwmId> & activeMwms) const
389{

Callers

nothing calls this directly

Calls 8

GetAvailabilityMethod · 0.80
SafeCallMethod · 0.80
OnTrafficInfoAddedMethod · 0.80
findMethod · 0.45
GetMwmIdMethod · 0.45
endMethod · 0.45
emptyMethod · 0.45
sizeMethod · 0.45

Tested by

no test coverage detected