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

Side by Side Diff: chrome/browser/media/router/discovery/media_sink_service_base.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 unified diff | Download patch
OLDNEW
(Empty)
1 // Copyright 2017 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 #include "chrome/browser/media/router/discovery/media_sink_service_base.h"
5
6 #include <vector>
7
8 namespace {
9 // Time interval when media sink service sends sinks to MRP.
10 const int kFetchCompleteTimeoutSecs = 3;
11 }
12
13 namespace media_router {
14
15 MediaSinkServiceBase::MediaSinkServiceBase(
16 const OnSinksDiscoveredCallback& callback)
17 : MediaSinkService(callback) {
18 fetch_complete_timeout_secs_ = kFetchCompleteTimeoutSecs;
19 }
20
21 MediaSinkServiceBase::~MediaSinkServiceBase() = default;
22
23 void MediaSinkServiceBase::SetTimerForTest(std::unique_ptr<base::Timer> timer) {
24 DCHECK(!finish_timer_);
25 finish_timer_ = std::move(timer);
26 }
27
28 void MediaSinkServiceBase::OnFetchCompleted() {
29 DCHECK(!sink_discovery_callback_.is_null());
30
31 if (current_sinks_ == mrp_sinks_) {
32 DVLOG(2) << "No update to sink list.";
33 return;
34 }
35
36 DVLOG(2) << "Send sinks to media router, [size]: " << current_sinks_.size();
37 sink_discovery_callback_.Run(std::vector<MediaSinkInternal>(
38 current_sinks_.begin(), current_sinks_.end()));
39 mrp_sinks_ = current_sinks_;
40 }
41
42 void MediaSinkServiceBase::StartTimer() {
43 // Create a finish timer.
44 if (!finish_timer_)
45 finish_timer_.reset(new base::OneShotTimer());
46
47 base::TimeDelta finish_delay =
48 base::TimeDelta::FromSeconds(fetch_complete_timeout_secs_);
49 finish_timer_->Start(FROM_HERE, finish_delay,
50 base::Bind(&MediaSinkServiceBase::OnFetchCompleted,
51 base::Unretained(this)));
52 }
53
54 } // namespace media_router
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698