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

Unified Diff: chrome/browser/media/router/discovery/media_sink_service_base.h

Issue 2965843002: [Media Router] Support dual discovery (Closed)
Patch Set: clean up and fix unit tests Created 3 years, 5 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/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_;

Powered by Google App Engine
This is Rietveld 408576698