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

Side by Side Diff: components/update_client/update_client.cc

Issue 1548203002: Convert Pass()→std::move() in //components/[n-z]* (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix bad headers Created 4 years, 12 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
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "components/update_client/update_client.h" 5 #include "components/update_client/update_client.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <queue> 8 #include <queue>
9 #include <set> 9 #include <set>
10 #include <utility> 10 #include <utility>
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
63 // Using unretained references is allowed in this case since the life time of 63 // Using unretained references is allowed in this case since the life time of
64 // the UpdateClient instance exceeds the life time of its inner members, 64 // the UpdateClient instance exceeds the life time of its inner members,
65 // including any thread objects that might execute callbacks bound to it. 65 // including any thread objects that might execute callbacks bound to it.
66 UpdateClientImpl::UpdateClientImpl( 66 UpdateClientImpl::UpdateClientImpl(
67 const scoped_refptr<Configurator>& config, 67 const scoped_refptr<Configurator>& config,
68 scoped_ptr<PingManager> ping_manager, 68 scoped_ptr<PingManager> ping_manager,
69 UpdateChecker::Factory update_checker_factory, 69 UpdateChecker::Factory update_checker_factory,
70 CrxDownloader::Factory crx_downloader_factory) 70 CrxDownloader::Factory crx_downloader_factory)
71 : is_stopped_(false), 71 : is_stopped_(false),
72 config_(config), 72 config_(config),
73 ping_manager_(ping_manager.Pass()), 73 ping_manager_(std::move(ping_manager)),
74 update_engine_( 74 update_engine_(
75 new UpdateEngine(config, 75 new UpdateEngine(config,
76 update_checker_factory, 76 update_checker_factory,
77 crx_downloader_factory, 77 crx_downloader_factory,
78 ping_manager_.get(), 78 ping_manager_.get(),
79 base::Bind(&UpdateClientImpl::NotifyObservers, 79 base::Bind(&UpdateClientImpl::NotifyObservers,
80 base::Unretained(this)))) {} 80 base::Unretained(this)))) {}
81 81
82 UpdateClientImpl::~UpdateClientImpl() { 82 UpdateClientImpl::~UpdateClientImpl() {
83 DCHECK(thread_checker_.CalledOnValidThread()); 83 DCHECK(thread_checker_.CalledOnValidThread());
(...skipping 18 matching lines...) Expand all
102 ids.push_back(id); 102 ids.push_back(id);
103 103
104 // Partially applies |completion_callback| to OnTaskComplete, so this 104 // Partially applies |completion_callback| to OnTaskComplete, so this
105 // argument is available when the task completes, along with the task itself. 105 // argument is available when the task completes, along with the task itself.
106 const auto callback = 106 const auto callback =
107 base::Bind(&UpdateClientImpl::OnTaskComplete, this, completion_callback); 107 base::Bind(&UpdateClientImpl::OnTaskComplete, this, completion_callback);
108 scoped_ptr<TaskUpdate> task(new TaskUpdate(update_engine_.get(), true, ids, 108 scoped_ptr<TaskUpdate> task(new TaskUpdate(update_engine_.get(), true, ids,
109 crx_data_callback, callback)); 109 crx_data_callback, callback));
110 110
111 // Install tasks are run concurrently and never queued up. 111 // Install tasks are run concurrently and never queued up.
112 RunTask(task.Pass()); 112 RunTask(std::move(task));
113 } 113 }
114 114
115 void UpdateClientImpl::Update(const std::vector<std::string>& ids, 115 void UpdateClientImpl::Update(const std::vector<std::string>& ids,
116 const CrxDataCallback& crx_data_callback, 116 const CrxDataCallback& crx_data_callback,
117 const CompletionCallback& completion_callback) { 117 const CompletionCallback& completion_callback) {
118 DCHECK(thread_checker_.CalledOnValidThread()); 118 DCHECK(thread_checker_.CalledOnValidThread());
119 119
120 const auto callback = 120 const auto callback =
121 base::Bind(&UpdateClientImpl::OnTaskComplete, this, completion_callback); 121 base::Bind(&UpdateClientImpl::OnTaskComplete, this, completion_callback);
122 scoped_ptr<TaskUpdate> task(new TaskUpdate(update_engine_.get(), false, ids, 122 scoped_ptr<TaskUpdate> task(new TaskUpdate(update_engine_.get(), false, ids,
123 crx_data_callback, callback)); 123 crx_data_callback, callback));
124 124
125 // If no other tasks are running at the moment, run this update task. 125 // If no other tasks are running at the moment, run this update task.
126 // Otherwise, queue the task up. 126 // Otherwise, queue the task up.
127 if (tasks_.empty()) { 127 if (tasks_.empty()) {
128 RunTask(task.Pass()); 128 RunTask(std::move(task));
129 } else { 129 } else {
130 task_queue_.push(task.release()); 130 task_queue_.push(task.release());
131 } 131 }
132 } 132 }
133 133
134 void UpdateClientImpl::RunTask(scoped_ptr<Task> task) { 134 void UpdateClientImpl::RunTask(scoped_ptr<Task> task) {
135 DCHECK(thread_checker_.CalledOnValidThread()); 135 DCHECK(thread_checker_.CalledOnValidThread());
136 base::ThreadTaskRunnerHandle::Get()->PostTask( 136 base::ThreadTaskRunnerHandle::Get()->PostTask(
137 FROM_HERE, base::Bind(&Task::Run, base::Unretained(task.get()))); 137 FROM_HERE, base::Bind(&Task::Run, base::Unretained(task.get())));
138 tasks_.insert(task.release()); 138 tasks_.insert(task.release());
(...skipping 16 matching lines...) Expand all
155 // Delete the completed task. A task can be completed because the update 155 // Delete the completed task. A task can be completed because the update
156 // engine has run it or because it has been canceled but never run. 156 // engine has run it or because it has been canceled but never run.
157 delete task; 157 delete task;
158 158
159 if (is_stopped_) 159 if (is_stopped_)
160 return; 160 return;
161 161
162 // Pick up a task from the queue if the queue has pending tasks and no other 162 // Pick up a task from the queue if the queue has pending tasks and no other
163 // task is running. 163 // task is running.
164 if (tasks_.empty() && !task_queue_.empty()) { 164 if (tasks_.empty() && !task_queue_.empty()) {
165 RunTask(scoped_ptr<Task>(task_queue_.front()).Pass()); 165 RunTask(scoped_ptr<Task>(task_queue_.front()));
166 task_queue_.pop(); 166 task_queue_.pop();
167 } 167 }
168 } 168 }
169 169
170 void UpdateClientImpl::AddObserver(Observer* observer) { 170 void UpdateClientImpl::AddObserver(Observer* observer) {
171 DCHECK(thread_checker_.CalledOnValidThread()); 171 DCHECK(thread_checker_.CalledOnValidThread());
172 observer_list_.AddObserver(observer); 172 observer_list_.AddObserver(observer);
173 } 173 }
174 174
175 void UpdateClientImpl::RemoveObserver(Observer* observer) { 175 void UpdateClientImpl::RemoveObserver(Observer* observer) {
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
222 while (!task_queue_.empty()) { 222 while (!task_queue_.empty()) {
223 const auto task(task_queue_.front()); 223 const auto task(task_queue_.front());
224 task_queue_.pop(); 224 task_queue_.pop();
225 task->Cancel(); 225 task->Cancel();
226 } 226 }
227 } 227 }
228 228
229 scoped_refptr<UpdateClient> UpdateClientFactory( 229 scoped_refptr<UpdateClient> UpdateClientFactory(
230 const scoped_refptr<Configurator>& config) { 230 const scoped_refptr<Configurator>& config) {
231 scoped_ptr<PingManager> ping_manager(new PingManager(*config)); 231 scoped_ptr<PingManager> ping_manager(new PingManager(*config));
232 return new UpdateClientImpl(config, ping_manager.Pass(), 232 return new UpdateClientImpl(config, std::move(ping_manager),
233 &UpdateChecker::Create, &CrxDownloader::Create); 233 &UpdateChecker::Create, &CrxDownloader::Create);
234 } 234 }
235 235
236 } // namespace update_client 236 } // namespace update_client
OLDNEW
« no previous file with comments | « components/update_client/update_checker_unittest.cc ('k') | components/update_client/update_client_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698