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

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

Issue 2373933003: [Offline pages] Updating RequestQueue::RemoveRequests to use a TaskQueue (Closed)
Patch Set: Addressing final feedback Created 4 years, 2 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_queue.h" 5 #include "components/offline_pages/background/request_queue.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/location.h" 8 #include "base/location.h"
9 #include "base/threading/thread_task_runner_handle.h" 9 #include "base/threading/thread_task_runner_handle.h"
10 #include "components/offline_pages/background/change_requests_state_task.h" 10 #include "components/offline_pages/background/change_requests_state_task.h"
11 #include "components/offline_pages/background/remove_requests_task.h"
11 #include "components/offline_pages/background/request_queue_store.h" 12 #include "components/offline_pages/background/request_queue_store.h"
12 #include "components/offline_pages/background/save_page_request.h" 13 #include "components/offline_pages/background/save_page_request.h"
13 14
14 namespace offline_pages { 15 namespace offline_pages {
15 16
16 namespace { 17 namespace {
17 // Completes the get requests call. 18 // Completes the get requests call.
18 void GetRequestsDone(const RequestQueue::GetRequestsCallback& callback, 19 void GetRequestsDone(const RequestQueue::GetRequestsCallback& callback,
19 bool success, 20 bool success,
20 std::vector<std::unique_ptr<SavePageRequest>> requests) { 21 std::vector<std::unique_ptr<SavePageRequest>> requests) {
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
66 result = RequestQueue::UpdateRequestResult::STORE_FAILURE; 67 result = RequestQueue::UpdateRequestResult::STORE_FAILURE;
67 else if (status == ItemActionStatus::NOT_FOUND) 68 else if (status == ItemActionStatus::NOT_FOUND)
68 result = RequestQueue::UpdateRequestResult::REQUEST_DOES_NOT_EXIST; 69 result = RequestQueue::UpdateRequestResult::REQUEST_DOES_NOT_EXIST;
69 else 70 else
70 result = RequestQueue::UpdateRequestResult::SUCCESS; 71 result = RequestQueue::UpdateRequestResult::SUCCESS;
71 } 72 }
72 73
73 callback.Run(result); 74 callback.Run(result);
74 } 75 }
75 76
76 // Completes the remove request call.
77 void RemoveRequestsDone(
78 const RequestQueue::RemoveRequestsCallback& callback,
79 const RequestQueue::UpdateMultipleRequestResults& results,
80 std::vector<std::unique_ptr<SavePageRequest>> requests) {
81 callback.Run(results, std::move(requests));
82 }
83
84 } // namespace 77 } // namespace
85 78
86 RequestQueue::RequestQueue(std::unique_ptr<RequestQueueStore> store) 79 RequestQueue::RequestQueue(std::unique_ptr<RequestQueueStore> store)
87 : store_(std::move(store)), weak_ptr_factory_(this) {} 80 : store_(std::move(store)), weak_ptr_factory_(this) {}
88 81
89 RequestQueue::~RequestQueue() {} 82 RequestQueue::~RequestQueue() {}
90 83
91 void RequestQueue::GetRequests(const GetRequestsCallback& callback) { 84 void RequestQueue::GetRequests(const GetRequestsCallback& callback) {
92 store_->GetRequests(base::Bind(&GetRequestsDone, callback)); 85 store_->GetRequests(base::Bind(&GetRequestsDone, callback));
93 } 86 }
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
144 return; 137 return;
145 } 138 }
146 139
147 // Since the request exists, update it. 140 // Since the request exists, update it.
148 std::vector<SavePageRequest> update_requests{update_request}; 141 std::vector<SavePageRequest> update_requests{update_request};
149 store_->UpdateRequests(update_requests, 142 store_->UpdateRequests(update_requests,
150 base::Bind(&UpdateRequestsDone, update_callback)); 143 base::Bind(&UpdateRequestsDone, update_callback));
151 } 144 }
152 145
153 void RequestQueue::RemoveRequests(const std::vector<int64_t>& request_ids, 146 void RequestQueue::RemoveRequests(const std::vector<int64_t>& request_ids,
154 const RemoveRequestsCallback& callback) { 147 const UpdateCallback& callback) {
155 store_->RemoveRequests(request_ids, base::Bind(RemoveRequestsDone, callback)); 148 std::unique_ptr<Task> task(
149 new RemoveRequestsTask(store_.get(), request_ids, callback));
150 task_queue_.AddTask(std::move(task));
156 } 151 }
157 152
158 void RequestQueue::ChangeRequestsState( 153 void RequestQueue::ChangeRequestsState(
159 const std::vector<int64_t>& request_ids, 154 const std::vector<int64_t>& request_ids,
160 const SavePageRequest::RequestState new_state, 155 const SavePageRequest::RequestState new_state,
161 const RequestQueue::UpdateCallback& callback) { 156 const RequestQueue::UpdateCallback& callback) {
162 std::unique_ptr<Task> task(new ChangeRequestsStateTask( 157 std::unique_ptr<Task> task(new ChangeRequestsStateTask(
163 store_.get(), request_ids, new_state, callback)); 158 store_.get(), request_ids, new_state, callback));
164 task_queue_.AddTask(std::move(task)); 159 task_queue_.AddTask(std::move(task));
165 } 160 }
166 161
167 void RequestQueue::PurgeRequests(const PurgeRequestsCallback& callback) {} 162 void RequestQueue::PurgeRequests(const PurgeRequestsCallback& callback) {}
168 163
169 } // namespace offline_pages 164 } // namespace offline_pages
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698