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

Unified Diff: chrome/browser/media/router/discovery/dial/dial_media_sink_service_impl.cc

Issue 2878103004: [Media Router] Create MediaSinkServiceBase and make DialMediaSinkService inherit from it (Closed)
Patch Set: rebase with master Created 3 years, 7 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/dial/dial_media_sink_service_impl.cc
diff --git a/chrome/browser/media/router/discovery/dial/dial_media_sink_service.cc b/chrome/browser/media/router/discovery/dial/dial_media_sink_service_impl.cc
similarity index 63%
rename from chrome/browser/media/router/discovery/dial/dial_media_sink_service.cc
rename to chrome/browser/media/router/discovery/dial/dial_media_sink_service_impl.cc
index c5a53717e8496e0ada86264d73e47d52ee3bc33b..73551d9cb89211ab8d6db2718cc0951f8391292b 100644
--- a/chrome/browser/media/router/discovery/dial/dial_media_sink_service.cc
+++ b/chrome/browser/media/router/discovery/dial/dial_media_sink_service_impl.cc
@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#include "chrome/browser/media/router/discovery/dial/dial_media_sink_service.h"
+#include "chrome/browser/media/router/discovery/dial/dial_media_sink_service_impl.h"
#include "chrome/browser/media/router/discovery/dial/dial_device_data.h"
#include "chrome/browser/profiles/profile.h"
@@ -11,27 +11,22 @@
using content::BrowserThread;
-namespace {
-// Time interval when media sink service sends sinks to MRP.
-const int kFetchCompleteTimeoutSecs = 3;
-}
-
namespace media_router {
-DialMediaSinkService::DialMediaSinkService(
+DialMediaSinkServiceImpl::DialMediaSinkServiceImpl(
const OnSinksDiscoveredCallback& callback,
net::URLRequestContextGetter* request_context)
- : MediaSinkService(callback), request_context_(request_context) {
+ : MediaSinkServiceBase(callback), request_context_(request_context) {
DCHECK_CURRENTLY_ON(BrowserThread::IO);
DCHECK(request_context_);
}
-DialMediaSinkService::~DialMediaSinkService() {
+DialMediaSinkServiceImpl::~DialMediaSinkServiceImpl() {
DCHECK_CURRENTLY_ON(BrowserThread::IO);
Stop();
}
-void DialMediaSinkService::Start() {
+void DialMediaSinkServiceImpl::Start() {
DCHECK_CURRENTLY_ON(BrowserThread::IO);
if (dial_registry_)
return;
@@ -41,7 +36,7 @@ void DialMediaSinkService::Start() {
dial_registry_->OnListenerAdded();
}
-void DialMediaSinkService::Stop() {
+void DialMediaSinkServiceImpl::Stop() {
DCHECK_CURRENTLY_ON(BrowserThread::IO);
if (!dial_registry_)
return;
@@ -51,19 +46,20 @@ void DialMediaSinkService::Stop() {
dial_registry_ = nullptr;
}
-DeviceDescriptionService* DialMediaSinkService::GetDescriptionService() {
+DeviceDescriptionService* DialMediaSinkServiceImpl::GetDescriptionService() {
DCHECK_CURRENTLY_ON(BrowserThread::IO);
if (!description_service_.get()) {
description_service_.reset(new DeviceDescriptionService(
- base::Bind(&DialMediaSinkService::OnDeviceDescriptionAvailable,
+ base::Bind(&DialMediaSinkServiceImpl::OnDeviceDescriptionAvailable,
base::Unretained(this)),
- base::Bind(&DialMediaSinkService::OnDeviceDescriptionError,
+ base::Bind(&DialMediaSinkServiceImpl::OnDeviceDescriptionError,
base::Unretained(this))));
}
return description_service_.get();
}
-void DialMediaSinkService::SetDialRegistryForTest(DialRegistry* dial_registry) {
+void DialMediaSinkServiceImpl::SetDialRegistryForTest(
+ DialRegistry* dial_registry) {
DCHECK(!dial_registry_);
dial_registry_ = dial_registry;
@@ -72,23 +68,21 @@ void DialMediaSinkService::SetDialRegistryForTest(DialRegistry* dial_registry) {
dial_registry_->OnListenerAdded();
}
-void DialMediaSinkService::SetDescriptionServiceForTest(
+void DialMediaSinkServiceImpl::SetDescriptionServiceForTest(
std::unique_ptr<DeviceDescriptionService> description_service) {
DCHECK(!description_service_);
description_service_ = std::move(description_service);
}
-void DialMediaSinkService::SetTimerForTest(std::unique_ptr<base::Timer> timer) {
- DCHECK(!finish_timer_);
- finish_timer_ = std::move(timer);
-}
-
-void DialMediaSinkService::OnDialDeviceEvent(
+void DialMediaSinkServiceImpl::OnDialDeviceEvent(
const DialRegistry::DeviceList& devices) {
DCHECK_CURRENTLY_ON(BrowserThread::IO);
- DVLOG(2) << "DialMediaSinkService::OnDialDeviceEvent found " << devices.size()
- << " devices";
+ DVLOG(2) << "DialMediaSinkServiceImpl::OnDialDeviceEvent found "
+ << devices.size() << " devices";
+ // Timer starts in |OnDialDeviceEvent()|, and expires 3 seconds later. If
+ // |OnDeviceDescriptionAvailable()| is called after |finish_timer_| expires,
+ // |finish_timer_| is restarted.
StartTimer();
current_sinks_.clear();
@@ -98,12 +92,12 @@ void DialMediaSinkService::OnDialDeviceEvent(
request_context_.get());
}
-void DialMediaSinkService::OnDialError(DialRegistry::DialErrorCode type) {
+void DialMediaSinkServiceImpl::OnDialError(DialRegistry::DialErrorCode type) {
DCHECK_CURRENTLY_ON(BrowserThread::IO);
DVLOG(2) << "OnDialError [DialErrorCode]: " << static_cast<int>(type);
}
-void DialMediaSinkService::OnDeviceDescriptionAvailable(
+void DialMediaSinkServiceImpl::OnDeviceDescriptionAvailable(
const DialDeviceData& device_data,
const ParsedDialDeviceDescription& description_data) {
DCHECK_CURRENTLY_ON(BrowserThread::IO);
@@ -135,37 +129,11 @@ void DialMediaSinkService::OnDeviceDescriptionAvailable(
StartTimer();
}
-void DialMediaSinkService::OnDeviceDescriptionError(
+void DialMediaSinkServiceImpl::OnDeviceDescriptionError(
const DialDeviceData& device,
const std::string& error_message) {
DCHECK_CURRENTLY_ON(BrowserThread::IO);
DVLOG(2) << "OnDescriptionFetchesError [message]: " << error_message;
}
-void DialMediaSinkService::OnFetchCompleted() {
- DCHECK(!sink_discovery_callback_.is_null());
-
- if (current_sinks_ == mrp_sinks_) {
- DVLOG(2) << "No update to sink list.";
- return;
- }
-
- DVLOG(2) << "Send sinks to media router, [size]: " << current_sinks_.size();
- sink_discovery_callback_.Run(std::vector<MediaSinkInternal>(
- current_sinks_.begin(), current_sinks_.end()));
- mrp_sinks_ = current_sinks_;
-}
-
-void DialMediaSinkService::StartTimer() {
- // Create a finish timer.
- if (!finish_timer_)
- finish_timer_.reset(new base::OneShotTimer());
-
- base::TimeDelta finish_delay =
- base::TimeDelta::FromSeconds(kFetchCompleteTimeoutSecs);
- finish_timer_->Start(FROM_HERE, finish_delay,
- base::Bind(&DialMediaSinkService::OnFetchCompleted,
- base::Unretained(this)));
-}
-
} // namespace media_router

Powered by Google App Engine
This is Rietveld 408576698