#include "chrome/browser/ui/media_router/query_result_manager.h"
#include <unordered_set>
#include <utility>
#include "base/containers/contains.h"
#include "base/memory/raw_ptr.h"
#include "base/observer_list.h"
#include "base/ranges/algorithm.h"
#include "components/media_router/browser/media_router.h"
#include "components/media_router/browser/media_sinks_observer.h"
#include "content/public/browser/browser_thread.h"
#include "url/origin.h"
namespace media_router {
class QueryResultManager::MediaSourceMediaSinksObserver
: public MediaSinksObserver { … };
class QueryResultManager::AnyMediaSinksObserver : public MediaSinksObserver { … };
QueryResultManager::QueryResultManager(MediaRouter* router) : … { … }
QueryResultManager::~QueryResultManager() { … }
void QueryResultManager::AddObserver(MediaSinkWithCastModesObserver* observer) { … }
void QueryResultManager::RemoveObserver(
MediaSinkWithCastModesObserver* observer) { … }
void QueryResultManager::SetSourcesForCastMode(
MediaCastMode cast_mode,
const std::vector<MediaSource>& sources,
const url::Origin& origin) { … }
void QueryResultManager::RemoveSourcesForCastMode(MediaCastMode cast_mode) { … }
CastModeSet QueryResultManager::GetSupportedCastModes() const { … }
std::unique_ptr<MediaSource> QueryResultManager::GetSourceForCastModeAndSink(
MediaCastMode cast_mode,
MediaSink::Id sink_id) const { … }
std::vector<MediaSource> QueryResultManager::GetSourcesForCastMode(
MediaCastMode cast_mode) const { … }
std::vector<MediaSinkWithCastModes> QueryResultManager::GetSinksWithCastModes()
const { … }
void QueryResultManager::RemoveOldSourcesForCastMode(
MediaCastMode cast_mode,
const std::vector<MediaSource>& new_sources) { … }
void QueryResultManager::AddObserversForCastMode(
MediaCastMode cast_mode,
const std::vector<MediaSource>& sources,
const url::Origin& origin) { … }
void QueryResultManager::SetSinksCompatibleWithSource(
MediaCastMode cast_mode,
const MediaSource& source,
const std::vector<MediaSink>& new_sinks) { … }
void QueryResultManager::UpdateSinkList(const std::vector<MediaSink>& sinks) { … }
std::unique_ptr<MediaSource>
QueryResultManager::GetHighestPrioritySourceForCastModeAndSink(
MediaCastMode cast_mode,
const CastModesWithMediaSources& sources_for_sink) const { … }
bool QueryResultManager::AreSourcesValidForCastMode(
MediaCastMode cast_mode,
const std::vector<MediaSource>& sources) const { … }
void QueryResultManager::NotifyOnResultsUpdated() { … }
}