Index: chrome/common/media_router/discovery/media_sink_service.h |
diff --git a/chrome/common/media_router/discovery/media_sink_service.h b/chrome/common/media_router/discovery/media_sink_service.h |
index 0fb11b5b8e5e659a02edbef26d2a63c0b5a46396..e510f005d0a68775accd9ab98f82ebec2a95c1d3 100644 |
--- a/chrome/common/media_router/discovery/media_sink_service.h |
+++ b/chrome/common/media_router/discovery/media_sink_service.h |
@@ -21,6 +21,15 @@ namespace media_router { |
// This class is not thread safe. All methods must be called from the UI thread. |
class MediaSinkService { |
public: |
+ class Observer { |
+ public: |
+ // Invoked when |sink| is added to current service. |
+ virtual void OnMediaSinkAdded(const MediaSinkInternal& sink) = 0; |
+ |
+ // Invoked when media sinks are removed from current service. |
+ virtual void OnMediaSinksRemoved() = 0; |
+ }; |
+ |
// Callback to be invoked when this class finishes sink discovering. |
// Arg 0: Sinks discovered and resolved by the service. |
using OnSinksDiscoveredCallback = |
@@ -39,6 +48,14 @@ class MediaSinkService { |
// Stops sink discovery. No-ops if already stopped. |
virtual void Stop() = 0; |
+ // Adds |observer| to current service. Does not take ownership of |observer|. |
+ // Caller should make sure that |observer| outlives current service. |
+ virtual void AddObserver(Observer* observer) = 0; |
+ |
+ // Removes |observer| from current service. Does not take ownership of |
+ // |observer|. |
+ virtual void RemoveObserver(Observer* observer) = 0; |
+ |
protected: |
OnSinksDiscoveredCallback sink_discovery_callback_; |