| OLD | NEW |
| 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 Loading... |
| 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 Loading... |
| 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 |
| OLD | NEW |