Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(53)

Unified Diff: chrome/browser/media/router/media_router_mojo_impl.h

Issue 1805813002: [Media Router] Wiring for searching route providers for new sinks. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/media/router/media_router_mojo_impl.h
diff --git a/chrome/browser/media/router/media_router_mojo_impl.h b/chrome/browser/media/router/media_router_mojo_impl.h
index bfe616a1a4e3e405755284d432c28f98cbdcab4f..54b684b70e763e7f9dd073410a795e197177dd3d 100644
--- a/chrome/browser/media/router/media_router_mojo_impl.h
+++ b/chrome/browser/media/router/media_router_mojo_impl.h
@@ -160,6 +160,20 @@ class MediaRouterMojoImpl : public MediaRouterBase,
DISALLOW_COPY_AND_ASSIGN(MediaSinksQuery);
};
+ // Represents a query to the MRPM for media sinks with a certain sink ID and
+ // holds observers for the query. This struct owns the observers because after
+ // they are notified they need to be destroyed.
+ struct MediaSinksSearchQuery {
+ public:
+ MediaSinksSearchQuery();
+ ~MediaSinksSearchQuery();
+
+ std::vector<scoped_ptr<MediaSinksSearchRequest>> observers;
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(MediaSinksSearchQuery);
+ };
+
struct MediaRoutesQuery {
public:
MediaRoutesQuery();
@@ -202,6 +216,8 @@ class MediaRouterMojoImpl : public MediaRouterBase,
// MediaRouter implementation.
bool RegisterMediaSinksObserver(MediaSinksObserver* observer) override;
void UnregisterMediaSinksObserver(MediaSinksObserver* observer) override;
+ bool RegisterMediaSinksSearchRequest(
+ scoped_ptr<MediaSinksSearchRequest> request) override;
void RegisterMediaRoutesObserver(MediaRoutesObserver* observer) override;
void UnregisterMediaRoutesObserver(MediaRoutesObserver* observer) override;
void RegisterIssuesObserver(IssuesObserver* observer) override;
@@ -247,6 +263,8 @@ class MediaRouterMojoImpl : public MediaRouterBase,
void DoStopObservingMediaSinks(const MediaSource::Id& source_id);
void DoStartObservingMediaRoutes(const MediaSource::Id& source_id);
void DoStopObservingMediaRoutes(const MediaSource::Id& source_id);
+ void DoSearchProviders(const MediaSource::Id& source_id,
+ const MediaSink::Id& sink_id);
// Invoked when the next batch of messages arrives.
// |route_id|: ID of route of the messages.
@@ -268,9 +286,12 @@ class MediaRouterMojoImpl : public MediaRouterBase,
void OnIssue(interfaces::IssuePtr issue) override;
void OnSinksReceived(const mojo::String& media_source,
mojo::Array<interfaces::MediaSinkPtr> sinks) override;
+ void OnSearchSinksReceived(
+ const mojo::String& sink_id,
+ mojo::Array<interfaces::MediaSinkPtr> sinks) override;
void OnRoutesUpdated(mojo::Array<interfaces::MediaRoutePtr> routes,
- const mojo::String& media_source,
- mojo::Array<mojo::String> joinable_route_ids) override;
+ const mojo::String& media_source,
+ mojo::Array<mojo::String> joinable_route_ids) override;
void OnSinkAvailabilityUpdated(
interfaces::MediaRouter::SinkAvailability availability) override;
void OnPresentationConnectionStateChanged(
@@ -321,6 +342,9 @@ class MediaRouterMojoImpl : public MediaRouterBase,
base::ScopedPtrHashMap<MediaSource::Id, scoped_ptr<MediaSinksQuery>>
sinks_queries_;
+ std::unordered_map<MediaSink::Id, scoped_ptr<MediaSinksSearchQuery>>
+ search_queries_;
+
base::ScopedPtrHashMap<MediaSource::Id, scoped_ptr<MediaRoutesQuery>>
routes_queries_;

Powered by Google App Engine
This is Rietveld 408576698