Chromium Code Reviews| Index: chrome/browser/media/router/discovery/dial/dial_media_sink_service.h |
| diff --git a/chrome/browser/media/router/discovery/dial/dial_media_sink_service.h b/chrome/browser/media/router/discovery/dial/dial_media_sink_service.h |
| index 86f72c5beba6118eb17052fe0f245a9b357fa052..573809e559766dda7c1322234ad09a24de0a37a5 100644 |
| --- a/chrome/browser/media/router/discovery/dial/dial_media_sink_service.h |
| +++ b/chrome/browser/media/router/discovery/dial/dial_media_sink_service.h |
| @@ -28,22 +28,30 @@ class DialMediaSinkService : public MediaSinkService, |
| net::URLRequestContextGetter* request_context); |
| ~DialMediaSinkService() override; |
| + // Stop listening to DIAL device event. |
| + virtual void Stop(); |
|
mark a. foltz
2017/05/11 23:12:14
Maybe: // Stops listening for DIAL device events.
zhaobin
2017/05/12 00:36:09
Done.
|
| + |
| // MediaSinkService implementation |
| void Start() override; |
| - void Stop(); |
| - |
| protected: |
| - virtual DialRegistry* dial_registry(); |
| // Returns instance of device description service. Create a new one if none |
| // exists. |
| - virtual DeviceDescriptionService* GetDescriptionService(); |
| + DeviceDescriptionService* GetDescriptionService(); |
| + |
| + // Does not take ownership of |dial_registry|. |
| + void SetDialRegistryForTest(DialRegistry* dial_registry); |
| + void SetDescriptionServiceForTest( |
| + std::unique_ptr<DeviceDescriptionService> description_service); |
| + void SetTimerForTest(std::unique_ptr<base::Timer> timer); |
| private: |
| friend class DialMediaSinkServiceTest; |
| FRIEND_TEST_ALL_PREFIXES(DialMediaSinkServiceTest, TestStart); |
| - FRIEND_TEST_ALL_PREFIXES(DialMediaSinkServiceTest, TestFetchCompleted); |
| + FRIEND_TEST_ALL_PREFIXES(DialMediaSinkServiceTest, TestTimer); |
| + FRIEND_TEST_ALL_PREFIXES(DialMediaSinkServiceTest, |
| + TestFetchCompleted_SameSink); |
| FRIEND_TEST_ALL_PREFIXES(DialMediaSinkServiceTest, TestIsDifferent); |
| FRIEND_TEST_ALL_PREFIXES(DialMediaSinkServiceTest, |
| TestOnDeviceDescriptionAvailable); |
| @@ -65,13 +73,19 @@ class DialMediaSinkService : public MediaSinkService, |
| // Called when |finish_timer_| expires. |
| void OnFetchCompleted(); |
| + // Helper function to start |finish_timer_|. |
| + void StartTimer(); |
| + |
| // Timer for finishing fetching. Starts in |OnDialDeviceEvent()|, and expires |
| // 3 seconds later. If |OnDeviceDescriptionAvailable()| is called after |
| // |finish_timer_| expires, |finish_timer_| is restarted. |
| - std::unique_ptr<base::OneShotTimer> finish_timer_; |
| + std::unique_ptr<base::Timer> finish_timer_; |
| std::unique_ptr<DeviceDescriptionService> description_service_; |
| + // Raw pointer to DialRegistry singleton. |
| + DialRegistry* dial_registry_ = nullptr; |
| + |
| // Sorted sinks from current round of discovery. |
| std::set<MediaSinkInternal> current_sinks_; |