| Index: chrome/browser/media/router/discovery/media_sink_service_base.h
|
| diff --git a/chrome/browser/media/router/discovery/media_sink_service_base.h b/chrome/browser/media/router/discovery/media_sink_service_base.h
|
| index 482189555147a0a770ce62281743be3f9ba7848d..ef3d2f66c050985f020c2f04085f841d0dda09ed 100644
|
| --- a/chrome/browser/media/router/discovery/media_sink_service_base.h
|
| +++ b/chrome/browser/media/router/discovery/media_sink_service_base.h
|
| @@ -9,6 +9,7 @@
|
| #include <set>
|
|
|
| #include "base/gtest_prod_util.h"
|
| +#include "base/observer_list.h"
|
| #include "base/timer/timer.h"
|
| #include "chrome/common/media_router/discovery/media_sink_internal.h"
|
| #include "chrome/common/media_router/discovery/media_sink_service.h"
|
| @@ -20,11 +21,15 @@ class MediaSinkServiceBase : public MediaSinkService {
|
| explicit MediaSinkServiceBase(const OnSinksDiscoveredCallback& callback);
|
| ~MediaSinkServiceBase() override;
|
|
|
| + // MediaSinkService implementation
|
| + void AddObserver(Observer* observer) override;
|
| + void RemoveObserver(Observer* observer) override;
|
| +
|
| protected:
|
| void SetTimerForTest(std::unique_ptr<base::Timer> timer);
|
|
|
| // Called when |finish_timer_| expires.
|
| - void OnFetchCompleted();
|
| + virtual void OnFetchCompleted();
|
|
|
| // Helper function to start |finish_timer_|. Create a new timer if none
|
| // exists.
|
| @@ -40,19 +45,31 @@ class MediaSinkServiceBase : public MediaSinkService {
|
| // Overriden by subclass to report device counts.
|
| virtual void RecordDeviceCounts() {}
|
|
|
| + // Adds media sink to current service.
|
| + void AddSink(const MediaSinkInternal& sink);
|
| +
|
| + // Removes all media sinks from current service.
|
| + void RemoveSinks();
|
| +
|
| + // Returns size of media sinks in current service.
|
| + size_t GetCurrentSinksSize();
|
| +
|
| // Time out value for |finish_timer_|
|
| int fetch_complete_timeout_secs_;
|
|
|
| - // Sorted sinks from current round of discovery.
|
| - std::set<MediaSinkInternal> current_sinks_;
|
| -
|
| - // Sorted sinks sent to Media Router Provider in last FetchCompleted().
|
| - std::set<MediaSinkInternal> mrp_sinks_;
|
| + base::ObserverList<MediaSinkService::Observer> observers_;
|
|
|
| private:
|
| friend class MediaSinkServiceBaseTest;
|
| FRIEND_TEST_ALL_PREFIXES(MediaSinkServiceBaseTest,
|
| TestFetchCompleted_SameSink);
|
| + FRIEND_TEST_ALL_PREFIXES(MediaSinkServiceBaseTest, TestAddRemoveSinks);
|
| +
|
| + // Sorted sinks from current round of discovery.
|
| + std::set<MediaSinkInternal> current_sinks_;
|
| +
|
| + // Sorted sinks sent to Media Router Provider in last FetchCompleted().
|
| + std::set<MediaSinkInternal> mrp_sinks_;
|
|
|
| // Timer for finishing fetching.
|
| std::unique_ptr<base::Timer> finish_timer_;
|
|
|