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

Side by Side Diff: components/offline_pages/background/request_coordinator.cc

Issue 2262423002: Use a vector of smart pointers for callback return type. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Logical merge fixes Created 4 years, 3 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 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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/offline_pages/background/request_coordinator.h" 5 #include "components/offline_pages/background/request_coordinator.h"
6 6
7 #include <utility> 7 #include <utility>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/callback.h" 10 #include "base/callback.h"
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after
100 // Get all matching requests from the request queue, send them to our 100 // Get all matching requests from the request queue, send them to our
101 // callback. We bind the namespace and callback to the front of the callback 101 // callback. We bind the namespace and callback to the front of the callback
102 // param set. 102 // param set.
103 queue_->GetRequests(base::Bind(&RequestCoordinator::GetQueuedRequestsCallback, 103 queue_->GetRequests(base::Bind(&RequestCoordinator::GetQueuedRequestsCallback,
104 weak_ptr_factory_.GetWeakPtr(), callback)); 104 weak_ptr_factory_.GetWeakPtr(), callback));
105 } 105 }
106 106
107 void RequestCoordinator::GetQueuedRequestsCallback( 107 void RequestCoordinator::GetQueuedRequestsCallback(
108 const GetRequestsCallback& callback, 108 const GetRequestsCallback& callback,
109 RequestQueue::GetRequestsResult result, 109 RequestQueue::GetRequestsResult result,
110 const std::vector<SavePageRequest>& requests) { 110 std::vector<std::unique_ptr<SavePageRequest>> requests) {
111 callback.Run(requests); 111 callback.Run(std::move(requests));
112 } 112 }
113 113
114 void RequestCoordinator::StopPrerendering() { 114 void RequestCoordinator::StopPrerendering() {
115 if (offliner_ && is_busy_) { 115 if (offliner_ && is_busy_) {
116 offliner_->Cancel(); 116 offliner_->Cancel();
117 // Find current request and mark attempt aborted. 117 // Find current request and mark attempt aborted.
118 active_request_->MarkAttemptAborted(); 118 active_request_->MarkAttemptAborted();
119 queue_->UpdateRequest(*(active_request_.get()), 119 queue_->UpdateRequest(*(active_request_.get()),
120 base::Bind(&RequestCoordinator::UpdateRequestCallback, 120 base::Bind(&RequestCoordinator::UpdateRequestCallback,
121 weak_ptr_factory_.GetWeakPtr(), 121 weak_ptr_factory_.GetWeakPtr(),
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after
200 if (result != RequestQueue::UpdateRequestResult::SUCCESS) { 200 if (result != RequestQueue::UpdateRequestResult::SUCCESS) {
201 DVLOG(1) << "Failed to update request attempt details. " 201 DVLOG(1) << "Failed to update request attempt details. "
202 << static_cast<int>(result); 202 << static_cast<int>(result);
203 event_logger_.RecordUpdateRequestFailed(client_id.name_space, result); 203 event_logger_.RecordUpdateRequestFailed(client_id.name_space, result);
204 } 204 }
205 } 205 }
206 206
207 // Called in response to updating multiple requests in the request queue. 207 // Called in response to updating multiple requests in the request queue.
208 void RequestCoordinator::UpdateMultipleRequestsCallback( 208 void RequestCoordinator::UpdateMultipleRequestsCallback(
209 const RequestQueue::UpdateMultipleRequestResults& results, 209 const RequestQueue::UpdateMultipleRequestResults& results,
210 const std::vector<SavePageRequest>& requests) { 210 std::vector<std::unique_ptr<SavePageRequest>> requests) {
211 for (SavePageRequest request : requests) 211 std::vector<std::unique_ptr<SavePageRequest>>::iterator request;
Dmitry Titov 2016/08/26 23:39:20 would something like this work: for (const auto& r
Pete Williamson 2016/08/27 00:11:59 Done.
212 NotifyChanged(request); 212 for (request = requests.begin(); request != requests.end(); ++request)
213 NotifyChanged(*(request->get()));
213 } 214 }
214 215
215 void RequestCoordinator::HandleRemovedRequestsAndCallback( 216 void RequestCoordinator::HandleRemovedRequestsAndCallback(
216 const RemoveRequestsCallback& callback, 217 const RemoveRequestsCallback& callback,
217 const RequestQueue::UpdateMultipleRequestResults& results, 218 const RequestQueue::UpdateMultipleRequestResults& results,
218 const std::vector<SavePageRequest>& requests) { 219 std::vector<std::unique_ptr<SavePageRequest>> requests) {
219 callback.Run(results); 220 callback.Run(results);
220 HandleRemovedRequests(results, requests); 221 HandleRemovedRequests(results, std::move(requests));
221 } 222 }
222 223
223 void RequestCoordinator::HandleRemovedRequests( 224 void RequestCoordinator::HandleRemovedRequests(
224 const RequestQueue::UpdateMultipleRequestResults& results, 225 const RequestQueue::UpdateMultipleRequestResults& results,
225 const std::vector<SavePageRequest>& requests) { 226 std::vector<std::unique_ptr<SavePageRequest>> requests) {
226 for (SavePageRequest request : requests) 227 std::vector<std::unique_ptr<SavePageRequest>>::iterator request;
227 NotifyCompleted(request, SavePageStatus::REMOVED); 228 for (request = requests.begin(); request != requests.end(); ++request)
229 NotifyCompleted(*(request->get()), SavePageStatus::REMOVED);
228 } 230 }
229 231
230 void RequestCoordinator::StopProcessing() { 232 void RequestCoordinator::StopProcessing() {
231 is_stopped_ = true; 233 is_stopped_ = true;
232 StopPrerendering(); 234 StopPrerendering();
233 235
234 // Let the scheduler know we are done processing. 236 // Let the scheduler know we are done processing.
235 scheduler_callback_.Run(true); 237 scheduler_callback_.Run(true);
236 } 238 }
237 239
(...skipping 210 matching lines...) Expand 10 before | Expand all | Expand 10 after
448 FOR_EACH_OBSERVER(Observer, observers_, OnChanged(request)); 450 FOR_EACH_OBSERVER(Observer, observers_, OnChanged(request));
449 } 451 }
450 452
451 void RequestCoordinator::GetOffliner() { 453 void RequestCoordinator::GetOffliner() {
452 if (!offliner_) { 454 if (!offliner_) {
453 offliner_ = factory_->GetOffliner(policy_.get()); 455 offliner_ = factory_->GetOffliner(policy_.get());
454 } 456 }
455 } 457 }
456 458
457 } // namespace offline_pages 459 } // namespace offline_pages
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698