Chromium Code Reviews| Index: chrome/browser/media/router/media_router_base.cc |
| diff --git a/chrome/browser/media/router/media_router_base.cc b/chrome/browser/media/router/media_router_base.cc |
| index 923afc4efc79b6e37ec7dc9f865c8d1f5b3f6c2b..489d6f00ce8198937a3ec93cf444bef6b03b3c3c 100644 |
| --- a/chrome/browser/media/router/media_router_base.cc |
| +++ b/chrome/browser/media/router/media_router_base.cc |
| @@ -4,6 +4,8 @@ |
| #include "chrome/browser/media/router/media_router_base.h" |
| +#include <map> |
| + |
| #include "base/bind.h" |
| #include "base/guid.h" |
| #include "base/memory/ptr_util.h" |
| @@ -38,9 +40,28 @@ class MediaRouterBase::InternalMediaRoutesObserver |
| } |
| } |
| + void RegisterPresentationRoute(const std::string& presentation_id, |
| + const MediaRoute& route) { |
| + presentation_id_route.insert(std::make_pair(presentation_id, route)); |
| + } |
| + |
| + void UnregisterPresentationRoute(const std::string& presentation_id) { |
| + presentation_id_route.erase(presentation_id); |
|
imcheng
2017/03/08 20:06:35
If a MediaRoute was removed by the MRP, how is the
mark a. foltz
2017/03/08 22:01:47
One solution would be for each update sent to the
zhaobin
2017/03/09 00:34:27
Done.
|
| + } |
| + |
| + const MediaRoute* GetPresentationRoute( |
| + const std::string& presentation_id) const { |
| + auto it = presentation_id_route.find(presentation_id); |
| + if (it == presentation_id_route.end()) |
| + return nullptr; |
| + |
| + return &it->second; |
| + } |
| + |
| bool has_route; |
| std::vector<MediaRoute> current_routes; |
| std::vector<MediaRoute::Id> incognito_route_ids; |
| + std::map<std::string, MediaRoute> presentation_id_route; |
| private: |
| DISALLOW_COPY_AND_ASSIGN(InternalMediaRoutesObserver); |
| @@ -76,6 +97,25 @@ std::vector<MediaRoute> MediaRouterBase::GetCurrentRoutes() const { |
| return internal_routes_observer_->current_routes; |
| } |
| +void MediaRouterBase::RegisterPresentationRoute( |
| + const std::string& presentation_id, |
| + const MediaRoute& route) { |
| + DCHECK(internal_routes_observer_); |
| + internal_routes_observer_->RegisterPresentationRoute(presentation_id, route); |
| +} |
| + |
| +void MediaRouterBase::UnregisterPresentationRoute( |
| + const std::string& presentation_id) { |
| + DCHECK(internal_routes_observer_); |
| + internal_routes_observer_->UnregisterPresentationRoute(presentation_id); |
| +} |
| + |
| +const MediaRoute* MediaRouterBase::GetPresentationRoute( |
| + const std::string& presentation_id) const { |
| + DCHECK(internal_routes_observer_); |
| + return internal_routes_observer_->GetPresentationRoute(presentation_id); |
| +} |
| + |
| MediaRouterBase::MediaRouterBase() : initialized_(false) {} |
| // static |